Author |
Message
|
JT |
Posted: Mon Oct 04, 2004 2:07 pm Post subject: Multiple report messages |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
QM1 on Solaris using MQ v5.3.0.4 and WBIMB v5.0.2
QM2 on OS/390 using MQ v5.3.1
We have a web-based application that requires the delivery of messages to a queue hosted on an OS/390 queue manager. The message is delivered to the host queue by means of a WBIMB message flow, where an XML to COBOL transformation takes place. The front-end application requires a status regarding the delivery of the message, so in the message flow that transforms the XML into COBOL format, we implemented the report options:
Code: |
SET OutputRoot.MQMD.Report = MQRO_EXCEPTION_WITH_DATA + MQRO_COA_WITH_DATA + MQRO_PASS_CORREL_ID + MQRO_DISCARD_MSG; |
When we test for an exception condition, although we expected only one report message to be returned, we are receiving two report messages. The first has a feedback code of MQFB_COA with a Put-Application Type of Queue Manager and a Put-Application Name of QM1. The second report message, which we expected, has a feedback code that reflects the exception, MQRC_NOT_AUTHORIZED, with a Put-Application Type of MVS and a Put-Application Name of QM2. We're assuming the first report message is confirming the arrival of the message on the transmission queue. Is this accurate?
There was reference on the IBM website to a mask, but we are unsure as to how it relates:
Quote: |
....with the bits identified by MQRO_ACCEPT_UNSUP_IF_XMIT_MASK set to zero. (This prevents a COA or COD report message being generated when a message is placed on or removed from a transmission queue.) |
Is this the expected behavior? Any ideas on how to prevent the first report message? |
|
Back to top |
|
 |
siliconfish |
Posted: Mon Oct 04, 2004 2:33 pm Post subject: |
|
|
 Master
Joined: 12 Aug 2002 Posts: 203 Location: USA
|
If you are only expecting EXPIRATION reports and NOT COA reports, remove MQRO_COA_WITH_DATA option. _________________ siliconfish |
|
Back to top |
|
 |
JT |
Posted: Mon Oct 04, 2004 3:31 pm Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
The requirement is to provide the delivery status, either successful or unsuccessful. Without the COA option we would have to assume that the delivery was successful based on an exception report message not being generated/received. We can't accept that assumption. |
|
Back to top |
|
 |
siliconfish |
Posted: Mon Oct 04, 2004 4:30 pm Post subject: |
|
|
 Master
Joined: 12 Aug 2002 Posts: 203 Location: USA
|
MQFB_COA is generated by the queue manager that owns the destination queue, when the message is placed on the destination queue not on the XMIT queue. It is for the option MQRO_COA_WITH_DATA which you specified and it indicates that message has arrived at the queue destination queue manager. If you want the COA you have to accept the first report message also.
Else think of using COD - Confirmation of Delivery if you need to get the report after the the message is placed on the queue i.e., after getting the EXCEPTIOn Report.
But COD is delivered only when the message is retreived by the application which may or may not be useful to your case depending upon the requirement. _________________ siliconfish |
|
Back to top |
|
 |
PeterPotkay |
Posted: Mon Oct 04, 2004 7:25 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
siliconfish wrote: |
MQFB_COA is generated by the queue manager that owns the destination queue, when the message is placed on the destination queue not on the XMIT queue. It is for the option MQRO_COA_WITH_DATA which you specified and it indicates that message has arrived at the queue destination queue manager. If you want the COA you have to accept the first report message also. |
Then why did he get the Exceptio report? If the message made it to the queue like you say, he should not have gotten the exception report saying it couldn't access the queue to put the message.
JT, this is confusing. I can't see how 1 message could generate both a COA and an Exception report. Either the message made it to the queue (COA) or it didn't (Exception). Maybe it incorrectly is notifying you that the message made it to your local XMITQ. What if you allow the message to land on the final destination queue? Do you get 2 COAs? _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
JT |
Posted: Mon Oct 04, 2004 7:30 pm Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
Quote: |
It is for the option MQRO_COA_WITH_DATA which you specified and it indicates that message has arrived at the queue destination queue manager. |
But the reality is: that's not what we're seeing. There's no indication that the COA report message is being generated by QM2, to the contrary QM1's signature is all over it. Additionally the second report message, the exception, is definitely created by QM2 as it details the exception we expected. It doesn't make sense to us that QM2 would generate a COA report message indicating a successful delivery and then follow it up with the 2035 exception report message that we expected.
The IBM excerpt seems to indicate that the COA report message is being generated as a result of a successful put to QM1's transmission queue.
Has anyone utilized the MQRO_ACCEPT_UNSUP_IF_XMIT_MASK mask to suppress this event? |
|
Back to top |
|
 |
JT |
Posted: Mon Oct 04, 2004 7:52 pm Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
Quote: |
What if you allow the message to land on the final destination queue? Do you get 2 COAs? |
The RACF authority that will allow that to happen should be in place tomorrow. To my thinking though, regardless of the result (one COA or two), we're still seeing a COA report message under an exception condition. Should we receive two COA report messages, when the delivery is successful, lends credence to the assumption that one of them is generated for a successful 'put' to the local transmission queue. Our hope is that utilizing the mask will allow us to suppress the COA generated by the local queue manager. We just haven't figured out yet how to use it correctly.
Identifying the COA report message as having been locally generated and then ignoring it is not an option. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Mon Oct 04, 2004 7:56 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
I have never run into an XMITQ throwing a COA. Where did you find that info about that suppression flag?
I agree you should not get a COA from anywhere if there is an exception, and that you should not get a COA just because a message landed on an XMITQ. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
JT |
Posted: Mon Oct 04, 2004 8:14 pm Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Oct 04, 2004 8:15 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Hi Peter,
Out of curiosity how would COA react if the target is a remote queue on a remote qmgr ?
Thanks
F.J.  |
|
Back to top |
|
 |
PeterPotkay |
Posted: Tue Oct 05, 2004 10:23 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
JT, I would think if you are not writing directly to the XMITQ yourself, you shouldn't have to worry about this.
But, obviously, something is wrong. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
|