Posted: Thu Jan 16, 2014 11:50 pm Post subject: what happens to precommitted messages?
Grand Master
Joined: 22 May 2008 Posts: 1387 Location: Finland
What happens to precommitted messages if the client exits without committing?
I had recently a case where the user id didn't have authority to use SYSTEM.DOTNET.XARECOVERY.QUEUE. The sending program believed having successfully sent the message but nothing was sent. No coordinated transaction was programmed, but I guess the MQ .Net interface uses the recovery queue with all transactions. In fact, the messages were put outside syncpoint!
I haven't checked yet if they have the normal or extended transactional client. I'm under the impression that it doesn't make a difference.
Later, after the problem was solved, I examined all affected queues for uncommitted messages but didn't find any. I suppose orphaned precommitted messages don't linger?
Joined: 17 Nov 2005 Posts: 1002 Location: New Zealand
I'm not familiar with the exact environment you are referring to but the general rule is that a message put (or got) under sync point will be rolledback if the application exits without explicitly calling MQCMIT(). However, there are a few exceptions to this. If the application issues MQDISC() explicitly then it will be treated as an MQCMIT(). And on z/OS I believe an application ending normally will also commit the message (although I am prepared to be shot down by z/OS experts on this one).
Cheers,
Paul. _________________ Paul Clarke
MQGem Software
www.mqgem.com
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum