Author |
Message
|
Scooter |
Posted: Wed May 04, 2005 6:52 am Post subject: MsgID/CorrlID when using DLQ handler. |
|
|
 Apprentice
Joined: 01 May 2003 Posts: 35 Location: Dallas, Tx
|
Sorry for the length of this question, just want to make sure I describe the issue fully.
We are using MQSeries 5.1 on a windows server to send messages to an IMS bridge on the mainframe. The bridge then executes a MPP and returns the results to a reply queue that is a remote definition to a local queue on a windows server. At which point we are able to remove the response by using the Correlation Id. This process has been working for over a year with no issues.
We are now trying to implement secured MPPs that require a userid and password. Once again we have this working as long as you provide a valid ID and password. When OTMA determines that the ID and password are invalid it returns an error message to the dead-letter queue. IBM informed us this was the expected action and to use a DLQ hander to forward the message to the reply queue so we can act upon the message.
We have successfully implemented the DLQ handler and it is forwarding the messages to the reply queue. Problem is that the Correlation ID can no longer be used to retrieve the message from the reply queue because the Correlation ID doesn't contain the original Message ID like the other messages. The Message ID of these error messages contains the original Message ID from when it was created. Currently the only way our program is able to retrieve these messages is to search based on Correlation ID and if no message was found to then search based on Message ID. This is very time consuming and delays our response to the user.
What I need is a way to search for both types of messages or to get the correlation ID to contain a searchable ID that can be accessible to the processing program that started the transaction by putting it in remote queue.
Hope I have not confused anyone and thanks for any help you can give me with this issue. |
|
Back to top |
|
 |
JT |
Posted: Wed May 04, 2005 7:51 am Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
We use a msgtype of MQMT_REQUEST for messages destined for the MQ/IMS-bridge. This message type uses the Report field to indicate how the MsgId and CorrelId of the reply are to be set.
What msgtype are your messages?
Do you use any of the report options related to msgids & correlids, i.e. MQRO_COPY_MSG_ID_TO_CORREL_ID? |
|
Back to top |
|
 |
LuisFer |
Posted: Wed May 04, 2005 7:54 am Post subject: Re: MsgID/CorrlID when using DLQ handler. |
|
|
 Partisan
Joined: 17 Aug 2002 Posts: 302
|
If the msg is discarded from the OTMA the MsgId is not forwarded to the CorrelId (how it should do the IMS in a normal MQ-IMS tx).
You would must forward the MsgId==>CorrelId manually or (if possible) with th RUNMQDLQ ( i don't know how at this Moment). |
|
Back to top |
|
 |
Scooter |
Posted: Wed May 04, 2005 8:12 am Post subject: |
|
|
 Apprentice
Joined: 01 May 2003 Posts: 35 Location: Dallas, Tx
|
JT,
We are using the standard DATAGRAM message type with a IIH header. We are currently not using any report options. I will take a look at the report options since I have not used them before. Are the report options specified in the MQPMO? Can the report options be used with a DATAGRAM message? Sorry never used the report options I'm trying to get idea of where to look.
LuisFer,
We have come to the same conclusion and are using the RUNMQDLQ but have not been able to configure it to forward the MsgID to the CorrelID. We are trying to avoid writting a custom DLQ handler to do this manually.
Thank both of you for your input. I will post back if I get the Report Options to do the trick. If you have any further input I would love to hear it. |
|
Back to top |
|
 |
LuisFer |
Posted: Wed May 04, 2005 8:34 am Post subject: |
|
|
 Partisan
Joined: 17 Aug 2002 Posts: 302
|
I don't have located on manuals how to make this one (MsgId==>CorrelId) with the CSQUDLQH utility. Sorry |
|
Back to top |
|
 |
JT |
Posted: Wed May 04, 2005 8:43 am Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
Quote: |
Are the report options specified in the MQPMO? |
No, the MQRO options are set using the REPORT parameter within the MQMD header.
Quote: |
Can the report options be used with a DATAGRAM message? |
I don't believe the Report options regarding the msgid & correlid can be used, since the documentation doesn't specifically say that you can, as it does for the REQUEST type. |
|
Back to top |
|
 |
Scooter |
Posted: Wed May 04, 2005 8:59 am Post subject: |
|
|
 Apprentice
Joined: 01 May 2003 Posts: 35 Location: Dallas, Tx
|
Thanks for the help JT!
I was able to get it to work by setting the REPORT parameter to MQRO_PASS_CORREL_ID and then set the MQPMO options to MQPMO_NEW_CORREL_ID. Then I was able to search the reply queue by setting the Get MQMessage CorrelId equal to the Put MQMessage CorrelId.
I believe it is works this way. Since the MQPMO options is set to MQPMO_NEW_CORREL_ID the queue is creating a new CorrelId at the PC level. Then with the MQRO_PASS_CORREL_ID options set, the IMS bridge is moving the CorrelId to the reply message. Thus allowing me to locate the message based on the CorrelId that was created on the Put. The OMTA bounced messages will act the same way in that the CorrelId is left alone when the message is forwarded to the reply queue.
Does this sound logical to you or is there a potential problem that I have not seen? |
|
Back to top |
|
 |
|