ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum IndexMainframe, CICS, TXSeriesMQMD-BACKOUTCOUNT not incrementing for poison message

Post new topicReply to topic
MQMD-BACKOUTCOUNT not incrementing for poison message View previous topic :: View next topic
Author Message
AnjuKizh
PostPosted: Fri Jul 28, 2017 4:25 am Post subject: MQMD-BACKOUTCOUNT not incrementing for poison message Reply with quote

Newbie

Joined: 28 Jul 2017
Posts: 3

Hi All,

I'm reading message from queue in my CICS transaction. I have put a poison message(size greater than buffer size) to the queue. And when the MQGET fails (Reason code: 2080), I want the message to be moved to the back out queue defined. In my application program, I'm checking the MQMD-BACKOUTCOUNT and when it reaches BOTHRESH, I'm putting the message to Back out queue and do a CICS SYNCPOINT call. Until MQMD-BACKOUTCOUNT reaches the Threshold, I'm doing CICS SYNCPOINT ROLLBACK and do the MQGET again.

My issue is MQMD-BACKOUTCOUNT is not incrementing. It is always zero, ever after issuing MQGET call again on same poison message. Hence loops the transaction.

Below given are the MQGMO options I'm using for MQGET call.

MOVE MQMI-NONE TO MQMD-MSGID OF MQM-MESSAGE-DESCRIPTOR.
MOVE MQCI-NONE TO MQMD-CORRELID OF MQM-MESSAGE-DESCRIPTOR.

COMPUTE MQGMO-OPTIONS = MQGMO-CONVERT
+ MQGMO-WAIT
+ MQGMO-SYNCPOINT
+ MQGMO-FAIL-IF-QUIESCING.

Backout queue definition:

Queue name . . . . . . . . : XXXXX.XXXXX.XXXX.LOCAL
Disposition . . . . . . . . : QMGR XXXX

Backout Reporting
Backout threshold . . . : 3 0 - 999999999
Harden backout counter . : Y Y=Yes, N=No
Backout requeue name . . : XXXXX.XXXXX.XXXX.BO

Retention interval . . . . : 999999999 0 - 999999999 hours

Monitoring . . . . . . . . : Q Q=Qmgr, L=Low, M=Medium, H=High, O=Off
Accounting . . . . . . . . : Q E=Enabled, D=Disabled, Q=Qmgr

Creation time . . . . . . . : 2017-05-22 17.58.21
Last alteration time . . . : 2017-07-17 12.12.38

Can you please advise on what needs to be done.

Thanks in advance!
Anju.
Back to top
View user's profile Send private message
exerk
PostPosted: Fri Jul 28, 2017 8:18 am Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 5756

Consider this: If the message size is bigger than the buffer size, and you have not specified ACCEPT_TRUNCATED_MESSAGE, will the message actually have been logically removed from the queue and subsequently rolled back, or not removed at all?
_________________
It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys.

Back to top
View user's profile Send private message
bruce2359
PostPosted: Fri Jul 28, 2017 8:24 am Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 7858
Location: US: west coast, almost. Otherwise, enroute.

Or, restated:

Your MQGET call failed - it did not deliver a message to your message buffer. As a result, you cannot roll it back, and you cannot move it to the backout-queue.
_________________
I would tell you a UDP joke, but you might not get it.
Back to top
View user's profile Send private message
exerk
PostPosted: Fri Jul 28, 2017 8:40 am Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 5756

bruce2359 wrote:
Or, restated:

Your MQGET call failed - it did not deliver a message to your message buffer. As a result, you cannot roll it back, and you cannot move it to the backout-queue.

Aw..., you gave the
_________________
It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys.

Back to top
View user's profile Send private message
bruce2359
PostPosted: Fri Jul 28, 2017 8:43 am Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 7858
Location: US: west coast, almost. Otherwise, enroute.

exerk wrote:
bruce2359 wrote:
Or, restated:

Your MQGET call failed - it did not deliver a message to your message buffer. As a result, you cannot roll it back, and you cannot move it to the backout-queue.

Aw..., you gave the

I was overwhelmed with sympathy at that moment. It won't happen again.
_________________
I would tell you a UDP joke, but you might not get it.
Back to top
View user's profile Send private message
AnjuKizh
PostPosted: Fri Jul 28, 2017 8:48 am Post subject: Reply with quote

Newbie

Joined: 28 Jul 2017
Posts: 3

Thank you for your response. But here in my case, even if reason code is 2080(MQRC_TRUNCATED_MSG_FAILED), I'm getting the truncated message in message buffer and I'm able to put it to Back out queue.

So did you mean like, only if the MQGET is successful(MQCC_OK), we will be able to rollback?

Thanks!
Anju
Back to top
View user's profile Send private message
exerk
PostPosted: Fri Jul 28, 2017 8:53 am Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 5756

AnjuKizh wrote:
...in my case, even if reason code is 2080(MQRC_TRUNCATED_MSG_FAILED), I'm getting the truncated message in message buffer and I'm able to put it to Back out queue...

From the Knowledge Centre:

Quote:
On an MQGET call, the message length was too large to fit into the supplied buffer. The MQGMO_ACCEPT_TRUNCATED_MSG option was not specified, so the message has not been removed from the queue.

So you must be accepting the message in truncated form.
_________________
It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys.

Back to top
View user's profile Send private message
AnjuKizh
PostPosted: Fri Jul 28, 2017 9:02 am Post subject: Reply with quote

Newbie

Joined: 28 Jul 2017
Posts: 3

exerk wrote:
AnjuKizh wrote:
...in my case, even if reason code is 2080(MQRC_TRUNCATED_MSG_FAILED), I'm getting the truncated message in message buffer and I'm able to put it to Back out queue...

From the Knowledge Centre:

Quote:
On an MQGET call, the message length was too large to fit into the supplied buffer. The MQGMO_ACCEPT_TRUNCATED_MSG option was not specified, so the message has not been removed from the queue.

So you must be accepting the message in truncated form.


Okay. So do we have any option to remove a bad message from the queue, through application program when MQGET fails for other reasons than message size? In this case, I understand I can include MQGMO_ACCEPT_TRUNCATED_MSG option and make it to be removed.

Thanks,
Anju.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Fri Jul 28, 2017 9:09 am Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17448

You can set the buffer to be the max size = 1024768.

The memory used will only be the size of the actual message data.

You can then do whatever you need to figure out that the message is too big, and back it out.
_________________
chmod -R ugo-wx /
Back to top
View user's profile Send private message
bruce2359
PostPosted: Fri Jul 28, 2017 9:10 am Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 7858
Location: US: west coast, almost. Otherwise, enroute.

Developers should look at MQCC in addition to MQRC to determine if a call succeeded or not.
_________________
I would tell you a UDP joke, but you might not get it.
Back to top
View user's profile Send private message
Display posts from previous:
Post new topicReply to topic Page 1 of 1

MQSeries.net Forum IndexMainframe, CICS, TXSeriesMQMD-BACKOUTCOUNT not incrementing for poison message
Jump to:



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
Protected by Anti-Spam ACP


Theme by Dustin Baccetti
Powered by phpBB 2001, 2002 phpBB Group

Copyright MQSeries.net. All rights reserved.