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 Index » WebSphere Message Broker (ACE) Support » Handling MQInput Errors

Post new topic  Reply to topic
 Handling MQInput Errors « View previous topic :: View next topic » 
Author Message
mqxplorer
PostPosted: Thu Oct 03, 2013 6:48 am    Post subject: Handling MQInput Errors Reply with quote

Master

Joined: 22 Jun 2009
Posts: 206

Hi All,

We are using WMB V7.0.0.4 and I am exploring the Event Monitoring feature and configured the event for Transaction Rollback. I did not connect the Catch terminal of the flow and was expecting One TrabsactionStart and One TransactionRollback, however, I got the events in the following order...

1. TransactionStart
2. TransactionRollback
3. TransactionStart
4. TransactionEnd

When I read the documentation about MQInput node error handling... I got the below info from info Center.

Code:
Retry processing

The node attempts retry processing when a message is rolled back to the input queue. The node checks whether the message has been backed out before, and if it has, whether the backout count has reached (equalled) the backout threshold. The backout count for each message is maintained by WebSphere® MQ in the MQMD.

You specify (or allow to default to zero(0)) the backout threshold attribute BOTHRESH when you create the queue. If you accept the default value of 0, the node increases this value to one (1). The node also sets the value to 1 if it cannot detect the current value. If the backout threshold is set to 1, the message is processed once but it is not retried through the Out terminal of the MQInput node. To retry the message at least once, set the backout threshold to 2.


Backout Threshold of my input queue is the default value(0). Based on the above code what I understood is -- When the message rollback to the input queue, the sequence of actions happening are based on the below text from Info Center.

Code:
You specify (or allow to default to zero(0)) the backout threshold attribute BOTHRESH when you create the queue. If you accept the default value of 0, the node increases this value to one (1). The node also sets the value to 1 if it cannot detect the current value. If the backout threshold is set to 1, the message is processed once but it is not retried through the Out terminal of the MQInput node.


That is where the Second TransactionStart is emitted and TransactionEnd is emitted when the message is written to the Backout queue. Please correct me, if I am wrong...

And the other question I have is about the below text..

Code:
 the message is processed once but it is not retried through the Out terminal of the MQInput node


If the message is not retried through the Out terminal of MQInput node, how is it done?

Thanks
mqxplorer
Back to top
View user's profile Send private message
mqxplorer
PostPosted: Thu Oct 03, 2013 9:37 am    Post subject: Reply with quote

Master

Joined: 22 Jun 2009
Posts: 206

NOBODY to answer this question...????

Thanks
mqxplorer
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Thu Oct 03, 2013 9:41 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

Quote:
If the message is not retried through the Out terminal of MQInput node, how is it done?


Its not. BOTHRESH of zero means that no retry will occur.

You have in front of you the best learning tool of all : the actual product. Experiment with it until you clearly understand that true behavior.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
Vitor
PostPosted: Thu Oct 03, 2013 9:47 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

mqxplorer wrote:
NOBODY to answer this question...????


What do you think this is, a help desk with an SLA?

You want prompt answers, raise a PMR with the IBM help desk.

Failing that, exercise a little patience. Sometimes even I have to do work for the people who pay my salary rather than post here.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
Vitor
PostPosted: Thu Oct 03, 2013 9:51 am    Post subject: Re: Handling MQInput Errors Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

mqxplorer wrote:
Please correct me, if I am wrong...


Do you think you're wrong? What difference would it make if you were? How would that affect your event processing?

mqxplorer wrote:
And the other question I have is about the below text..

Code:
 the message is processed once but it is not retried through the Out terminal of the MQInput node


Where does it say that?

mqxplorer wrote:
If the message is not retried through the Out terminal of MQInput node, how is it done?


Magic.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
mqxplorer
PostPosted: Fri Oct 04, 2013 11:40 am    Post subject: Reply with quote

Master

Joined: 22 Jun 2009
Posts: 206

lancelotlinc wrote:


Its not. BOTHRESH of zero means that no retry will occur.

You have in front of you the best learning tool of all : the actual product. Experiment with it until you clearly understand that true behavior.


I experimented and I see the message not going through the Out terminal of MQInput node with zero BOTHRESH and when I set the BOTHRESH to 2, I see the message going through the Out terminal. However, I am still confused why there is a new TransactionStart event after the TransactionRollback. Any idea why this has happened?

Thanks
mqxplorer
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Fri Oct 04, 2013 11:43 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

Please post the output of your Trace node that is just after the MQInput node Out terminal.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
mqxplorer
PostPosted: Mon Oct 07, 2013 7:24 am    Post subject: Reply with quote

Master

Joined: 22 Jun 2009
Posts: 206

lancelotlinc wrote:
Please post the output of your Trace node that is just after the MQInput node Out terminal.


Here is the output....

Code:
TimeStamp: 2013-10-07 11:16:35.475673
( ['MQROOT' : 0x39d0e80]
  (0x01000000:Name):Properties = ( ['MQPROPERTYPARSER' : 0x3b75450]
    (0x03000000:NameValue):MessageSet             = '' (CHARACTER)
    (0x03000000:NameValue):MessageType            = '' (CHARACTER)
    (0x03000000:NameValue):MessageFormat          = '' (CHARACTER)
    (0x03000000:NameValue):Encoding               = 546 (INTEGER)
    (0x03000000:NameValue):CodedCharSetId         = 1208 (INTEGER)
    (0x03000000:NameValue):Transactional          = TRUE (BOOLEAN)
    (0x03000000:NameValue):Persistence            = TRUE (BOOLEAN)
    (0x03000000:NameValue):CreationTime           = GMTTIMESTAMP '2013-09-24 19:30:02.660' (GMTTIMESTAMP)
    (0x03000000:NameValue):ExpirationTime         = -1 (INTEGER)
    (0x03000000:NameValue):Priority               = 0 (INTEGER)
    (0x03000000:NameValue):ReplyIdentifier        = X'000000000000000000000000000000000000000000000000' (BLOB)
    (0x03000000:NameValue):ReplyProtocol          = 'MQ' (CHARACTER)
    (0x03000000:NameValue):Topic                  = NULL
    (0x03000000:NameValue):ContentType            = '' (CHARACTER)
    (0x03000000:NameValue):IdentitySourceType     = '' (CHARACTER)
    (0x03000000:NameValue):IdentitySourceToken    = '' (CHARACTER)
    (0x03000000:NameValue):IdentitySourcePassword = '' (CHARACTER)
    (0x03000000:NameValue):IdentitySourceIssuedBy = '' (CHARACTER)
    (0x03000000:NameValue):IdentityMappedType     = '' (CHARACTER)
    (0x03000000:NameValue):IdentityMappedToken    = '' (CHARACTER)
    (0x03000000:NameValue):IdentityMappedPassword = '' (CHARACTER)
    (0x03000000:NameValue):IdentityMappedIssuedBy = '' (CHARACTER)
  )
  (0x01000000:Name):MQMD       = ( ['MQHMD' : 0x38d0080]
    (0x03000000:NameValue):SourceQueue      = 'QL.IN' (CHARACTER)
    (0x03000000:NameValue):Transactional    = TRUE (BOOLEAN)
    (0x03000000:NameValue):Encoding         = 1 (INTEGER)
    (0x03000000:NameValue):CodedCharSetId   = 819 (INTEGER)
    (0x03000000:NameValue):Format           = 'MQHRF2  ' (CHARACTER)
    (0x03000000:NameValue):Version          = 2 (INTEGER)
    (0x03000000:NameValue):Report           = 0 (INTEGER)
    (0x03000000:NameValue):MsgType          = 8 (INTEGER)
    (0x03000000:NameValue):Expiry           = -1 (INTEGER)
    (0x03000000:NameValue):Feedback         = 0 (INTEGER)
    (0x03000000:NameValue):Priority         = 0 (INTEGER)
    (0x03000000:NameValue):Persistence      = 1 (INTEGER)
    (0x03000000:NameValue):MsgId            = X'414d5120454d4d514d47525f49424d2e7bbd52520f4e0020' (BLOB)
    (0x03000000:NameValue):CorrelId         = X'000000000000000000000000000000000000000000000000' (BLOB)
    (0x03000000:NameValue):BackoutCount     = 0 (INTEGER)
    (0x03000000:NameValue):ReplyToQ         = '                                                ' (CHARACTER)
    (0x03000000:NameValue):ReplyToQMgr      = 'TESTQMGR_IBM.MQ                                  ' (CHARACTER)
    (0x03000000:NameValue):UserIdentifier   = 'TEST_USER1  ' (CHARACTER)
    (0x03000000:NameValue):AccountingToken  = X'0000000000000000000000000000000000000000000000000000000000000000' (BLOB)
    (0x03000000:NameValue):ApplIdentityData = '                                ' (CHARACTER)
    (0x03000000:NameValue):PutApplType      = 0 (INTEGER)
    (0x03000000:NameValue):PutApplName      = 'testApp              ' (CHARACTER)
    (0x03000000:NameValue):PutDate          = DATE '2013-09-24' (DATE)
    (0x03000000:NameValue):PutTime          = GMTTIME '19:30:02.660' (GMTTIME)
    (0x03000000:NameValue):ApplOriginData   = '    ' (CHARACTER)
    (0x03000000:NameValue):GroupId          = X'000000000000000000000000000000000000000000000000' (BLOB)
    (0x03000000:NameValue):MsgSeqNumber     = 1 (INTEGER)
    (0x03000000:NameValue):Offset           = 0 (INTEGER)
    (0x03000000:NameValue):MsgFlags         = 0 (INTEGER)
    (0x03000000:NameValue):OriginalLength   = -1 (INTEGER)
  )
  (0x01000000:Name):MQRFH2C    = ( ['MQHRF2C' : 0x389c200]
    (0x03000000:NameValue):Version        = 2 (INTEGER)
    (0x03000000:NameValue):Format         = '        ' (CHARACTER)
    (0x03000000:NameValue):Encoding       = 1 (INTEGER)
    (0x03000000:NameValue):CodedCharSetId = 1208 (INTEGER)
    (0x03000000:NameValue):Flags          = 0 (INTEGER)
    (0x03000000:NameValue):NameValueCCSID = 1208 (INTEGER)
    (0x01000000:Name     ):usr            = (
      (0x03000000:NameValue):TEST_NAME             = 'TestFile.txt' (CHARACTER)
      (
        (0x03000101:NameValue+):dt = 'string' (CHARACTER)
      )
      (0x03000000:NameValue):TEST_CONTENT_TYPE     = 'text/plain' (CHARACTER)
      (
        (0x03000101:NameValue+):dt = 'string' (CHARACTER)
      )
      (0x03000000:NameValue):TEST_CHECKSUM         = '/sefdwseafd==' (CHARACTER)
      (
        (0x03000101:NameValue+):dt = 'string' (CHARACTER)
      )
      )
      (0x03000000:NameValue):TEST_CONTENT_ENCODING = 'gzip' (CHARACTER)
      (
        (0x03000101:NameValue+):dt = 'string' (CHARACTER)
      )
    )
  )
  (0x01000000:Name):BLOB       = ( ['none' : 0x38a6020]
    (0x03000000:NameValue):UnknownParserName = '' (CHARACTER)
    (0x03000000:NameValue):BLOB              = X'1f8b0800000000000000bd50c16ac240' (BLOB)
  )
)


This is in case of an exception which is where I am getting another TransactionStart event after the rollback as if the Retry is happening.

Thanks
mqxplorer
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Mon Oct 07, 2013 7:33 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

mqxplorer wrote:
This is in case of an exception which is where I am getting another TransactionStart event after the rollback as if the Retry is happening.


You have not demonstrated this via Trace output. Don't make assumptions about what is happening. PROVE or DISPROVE what is happening.

If you have only one entry in your Trace output, this means that only the original attempt was processed with no retries.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
mqxplorer
PostPosted: Mon Oct 07, 2013 7:47 am    Post subject: Reply with quote

Master

Joined: 22 Jun 2009
Posts: 206

lancelotlinc wrote:


You have not demonstrated this via Trace output. Don't make assumptions about what is happening. PROVE or DISPROVE what is happening.

If you have only one entry in your Trace output, this means that only the original attempt was processed with no retries.


Yes, I did not demonstrate via Trace Output. I am confident that the retry is not happening. However, I still don't have answer to the question "Why the second TransactionStart event is emitted after the rollback"... This is something I have to answer my teammates and my manager.

Thanks
mqxplorer
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Mon Oct 07, 2013 7:52 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

mqxplorer wrote:
lancelotlinc wrote:


You have not demonstrated this via Trace output. Don't make assumptions about what is happening. PROVE or DISPROVE what is happening.

If you have only one entry in your Trace output, this means that only the original attempt was processed with no retries.


Yes, I did not demonstrate via Trace Output. I am confident that the retry is not happening. However, I still don't have answer to the question "Why the second TransactionStart event is emitted after the rollback"... This is something I have to answer my teammates and my manager.

Thanks
mqxplorer


Did you get a response on your PMR ? There are some APARs relating to monitoring events that apply to V7.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
Vitor
PostPosted: Mon Oct 07, 2013 7:53 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

mqxplorer wrote:
However, I still don't have answer to the question "Why the second TransactionStart event is emitted after the rollback"... This is something I have to answer my teammates and my manager.


I thought we discussed this earlier in the thread; the 2nd transaction start is the message going to backout.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
mqxplorer
PostPosted: Mon Oct 07, 2013 8:04 am    Post subject: Reply with quote

Master

Joined: 22 Jun 2009
Posts: 206

Vitor wrote:


I thought we discussed this earlier in the thread; the 2nd transaction start is the message going to backout.


I guess, I did not understand your point earlier. Now I am clear about my second transaction start which is for the message going to backout which is what is happening in my flow.

Thanks a lot Vitor and lancelotlinc ...

Thanks
mqxplorer
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Handling MQInput Errors
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.