Author |
Message
|
saikrishna8 |
Posted: Mon Apr 17, 2017 5:22 am Post subject: How to read RFH2/Named Properties of MQ message in API exits |
|
|
Newbie
Joined: 17 Apr 2017 Posts: 4
|
I have written and set up both API exits and channel exits using the sample codes provided by IBM and am able to receive most of the information such as Queue Manager name, Put Application Name and time etc.
However, I am unable to retrieve the RFH2 or Named Properties which are in Name-Value pair and are being set by the client application in each message.
The application is communicating from MQ client to the Queue Manager through CLNTCONN/SVRCONN channels.
Functions used in API exits for MQPUT operations:
---------------------------------------------------------
MQ_PUT_EXIT PutBefore;
void MQENTRY PutBefore ( PMQAXP pExitParms
, PMQAXC pExitContext
, PMQHCONN pHconn
, PMQHOBJ pHobj
, PPMQMD ppMsgDesc
, PPMQPMO ppPutMsgOpts
, PMQLONG pBufferLength
, PPMQVOID ppBuffer
, PMQLONG pCompCode
, PMQLONG pReason
)
MQ_PUT_EXIT PutAfter;
void MQENTRY PutAfter ( PMQAXP pExitParms
, PMQAXC pExitContext
, PMQHCONN pHconn
, PMQHOBJ pHobj
, PPMQMD ppMsgDesc
, PPMQPMO ppPutMsgOpts
, PMQLONG pBufferLength
, PPMQVOID ppBuffer
, PMQLONG pCompCode
, PMQLONG pReason
)
Function used in Channel exit :
----------------------------------
void MQENTRY ChannelExit ( PMQCXP pChannelExitParms,
PMQCD pChannelDefinition,
PMQLONG pDataLength,
PMQLONG pAgentBufferLength,
PMQVOID pAgentBuffer,
PMQLONG pExitBufferLength,
PMQPTR pExitBufferAddr)
Please provide any code snippet for retrieving the message properties in MQ API/Channel exits. |
|
Back to top |
|
 |
bruce2359 |
Posted: Mon Apr 17, 2017 6:17 am Post subject: Re: How to read RFH2/Named Properties of MQ message in API e |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
saikrishna8 wrote: |
However, I am unable to retrieve the RFH2 or Named Properties which are in Name-Value pair and are being set by the client application in each message. |
Is your code getting some kind of error ReasonCode? _________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live. |
|
Back to top |
|
 |
saikrishna8 |
Posted: Mon Apr 17, 2017 6:35 am Post subject: |
|
|
Newbie
Joined: 17 Apr 2017 Posts: 4
|
The code I have so far is working fine. But I am unable to identify the structure through which I can retrieve the additional message properties being set by the client application in Name-Value format. |
|
Back to top |
|
 |
RogerLacroix |
Posted: Mon Apr 17, 2017 2:07 pm Post subject: Re: How to read RFH2/Named Properties of MQ message in API e |
|
|
 Jedi Knight
Joined: 15 May 2001 Posts: 3264 Location: London, ON Canada
|
saikrishna8 wrote: |
I have written and set up both API exits and channel exits |
Getting the information from channel send/receive exits would be a real pain. The data is chucked in 32KB sections (TSH data).
Easier method would be to get it from an API Exit on the Put After invocation of the exit. Also, there is a difference between an MQRFH2 message and a message with message properties. I can't give you any code because it took a fair bit of work to get it right in MQ Auditor.
<Vendor_Plug>Sometimes it is cheaper and faster to buy rather than build.</Vendor_Plug>
Regards,
Roger Lacroix
Capitalware Inc. _________________ Capitalware: Transforming tomorrow into today.
Connected to MQ!
Twitter |
|
Back to top |
|
 |
PaulClarke |
Posted: Mon Apr 17, 2017 3:10 pm Post subject: |
|
|
 Grand Master
Joined: 17 Nov 2005 Posts: 1002 Location: New Zealand
|
I would say it is worse than that. Not only is parsing the data from send/receive exits a 'real pain' it is not supported. Firstly IBM does not publish the format. Secondly the format of the data can change at any moment (release) and Lastly the data could be encrypted or compressed anyway so will not make much sense.
I agree with Roger that an API EXit seems a far better way to go.
Cheers,
Paul. _________________ Paul Clarke
MQGem Software
www.mqgem.com |
|
Back to top |
|
 |
saikrishna8 |
Posted: Mon Apr 17, 2017 5:04 pm Post subject: |
|
|
Newbie
Joined: 17 Apr 2017 Posts: 4
|
Thanks for your responses. My first preference was also API exit and I have captured a lot of information from it. But since I could not get these properties, which was a major requirement, I was trying using channel exits as well.
Can you please guide on capturing these properties from API exits? |
|
Back to top |
|
 |
hughson |
Posted: Mon Apr 17, 2017 6:16 pm Post subject: |
|
|
 Padawan
Joined: 09 May 2013 Posts: 1959 Location: Bay of Plenty, New Zealand
|
Please read the following page in Knowledge Center:-
Writing API exits
Specifically the sub-section entitled "Using message handles in API exits". It also mentions a sample.
Cheers
Morag _________________ Morag Hughson @MoragHughson
IBM MQ Technical Education Specialist
Get your IBM MQ training here!
MQGem Software |
|
Back to top |
|
 |
saikrishna8 |
Posted: Mon Apr 17, 2017 6:35 pm Post subject: |
|
|
Newbie
Joined: 17 Apr 2017 Posts: 4
|
I had followed the guidelines and sample on the Writing API Exits IBM link for developing the application. But it gave invalid message handle error when I tried to access the message due to which I am stuck for quite sometime now. Any working code sample would be of great help. |
|
Back to top |
|
 |
hughson |
Posted: Mon Apr 17, 2017 6:56 pm Post subject: |
|
|
 Padawan
Joined: 09 May 2013 Posts: 1959 Location: Bay of Plenty, New Zealand
|
Does the sample work for you? How does your code differ from the sample? Could you post your code? _________________ Morag Hughson @MoragHughson
IBM MQ Technical Education Specialist
Get your IBM MQ training here!
MQGem Software |
|
Back to top |
|
 |
|