Author |
Message
|
TEK |
Posted: Wed May 21, 2003 5:56 am Post subject: Mystery: Uncommitted message appears in OS390 transmit queue |
|
|
Newbie
Joined: 05 Dec 2002 Posts: 8 Location: Holliston, MA USA
|
Platforms: Versions
OS390: MQV5.2
Win2K: MQ V5.2.1
Anyone ever run across a situation where a message PUT from an MQ Client app to a Remote queue on OS390 results in an uncommitted message stuck on the Transmit queue?
I can assure you that there are NO commit semantics in the app code. The app code works flawlessly with other platforms (Windows and Unix). I'm told that the sample Windows MQ client app DOES NOT similarly fail.
The MQ Client app can successfully PUT and GET to a local queue on OS/390. _________________ Tom Krpata
-----------------------------------------
MQSeries Certified Solutions Expert
MQSeries Certified Specialist |
|
Back to top |
|
 |
RogerLacroix |
Posted: Wed May 21, 2003 9:30 pm Post subject: |
|
|
 Jedi Knight
Joined: 15 May 2001 Posts: 3264 Location: London, ON Canada
|
Sure, but I would not say stuck but rather the message will remain on the XMIT queue until the client app either closes the queue or disconnects from the queue manager.
The client app did not explicitly specify either SYNCPOINT or NO_SYNCPOINT. Therefore, the default behaviour of the queue manager takes over.
For the distributed world, the default behaviour for getting and putting messages is NO_SYNCPOINT. But for the mainframe world (OS/390 & z/OS), the default behaviour for getting and putting messages is SYNCPOINT.
I would bet a box of original Krispy Kreme donuts that if you code the following line (C example) in your MQ client app program that the problem goes away:
Code: |
pmo.Options = MQPMO_NO_SYNCPOINT | MQPMO_FAIL_IF_QUIESCING; |
later
Roger... _________________ Capitalware: Transforming tomorrow into today.
Connected to MQ!
Twitter |
|
Back to top |
|
 |
TEK |
Posted: Thu May 22, 2003 4:22 am Post subject: |
|
|
Newbie
Joined: 05 Dec 2002 Posts: 8 Location: Holliston, MA USA
|
Roger:
Thanks for the advice. I'll give it a try and post the results.
It was reported to me that the message remained after the program was terminated and until the QM was bounced. Not sure if sufficient time was allotted to permit clean-up. So, we'll see.
--Tom _________________ Tom Krpata
-----------------------------------------
MQSeries Certified Solutions Expert
MQSeries Certified Specialist |
|
Back to top |
|
 |
TEK |
Posted: Mon Jun 02, 2003 10:05 am Post subject: |
|
|
Newbie
Joined: 05 Dec 2002 Posts: 8 Location: Holliston, MA USA
|
Roger:
I implemented your suggestion:
Code: |
pmo.Options = MQPMO_NO_SYNCPOINT | MQPMO_FAIL_IF_QUIESCING;
|
The problem remains the same.
Double or nothing on those Krispy Kremes? _________________ Tom Krpata
-----------------------------------------
MQSeries Certified Solutions Expert
MQSeries Certified Specialist |
|
Back to top |
|
 |
RogerLacroix |
Posted: Mon Jun 02, 2003 10:35 am Post subject: |
|
|
 Jedi Knight
Joined: 15 May 2001 Posts: 3264 Location: London, ON Canada
|
Ok, how do you know it is an 'uncommitted message' in the transmit queue? You cannot see / view uncommitted messages. The current depth of a queue will give you a hint that there may be uncommitted messages.
So, how did you determine that this particular application is causing the uncommitted messages to be 'stuck' on the transmit queue?
later
Roger... _________________ Capitalware: Transforming tomorrow into today.
Connected to MQ!
Twitter |
|
Back to top |
|
 |
Jesh |
Posted: Mon Jun 02, 2003 11:27 pm Post subject: |
|
|
Novice
Joined: 09 Apr 2003 Posts: 12
|
I think, you have to specify MQPMO_SYNCPOINT and not MQMPO_NO_SYNCPOINT.
MQPMO_SYNCPOINT causes the messages to be invisible outside the unit of work that is putting the messages into the queue until a commit happens. If your unit of work backs out, the message will also get deleted.
Code: |
pmo.Options = MQPMO_SYNCPOINT | MQPMO_FAIL_IF_QUIESCING; |
Or have I missed anything else here?
Thanks,
Jesh |
|
Back to top |
|
 |
TEK |
Posted: Wed Jun 04, 2003 6:06 am Post subject: |
|
|
Newbie
Joined: 05 Dec 2002 Posts: 8 Location: Holliston, MA USA
|
Jesh:
Yes, I think you perhaps misread the problem. I needed to PREVENT messages from appearing under syncpoint.
See below.
Roger:
I stand corrected. Your suggestion did, in fact, solve the problem!
Blame it on bad info from the front lines coupled with not asking enough of the correct questions.
Bottom line -- Problem solved! Thanks. _________________ Tom Krpata
-----------------------------------------
MQSeries Certified Solutions Expert
MQSeries Certified Specialist |
|
Back to top |
|
 |
|