View previous topic :: View next topic
|
Author |
Message |
kratos86
Active User
Joined: 17 Mar 2008 Posts: 148 Location: Anna NGR
|
|
|
|
Hi,
I have a question here. In my system we have a MQ program which is set for the threshold limit of 2 and whenever the backout count is greater than 2 we move the message to error queue. After the message is moved to error queue and when i tried to read messages from error queue, backout count is always '0'. Is this expected functioning.
Also the message which gets backed out has no invalid data and similar messages for same account number are processed succesfully. Only few messages are having this problem. Can you assist me on how to proceed with this. |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
If you have a new question, please start a new topic, not tailgate an old one. You know that Kratos86. Otherwise your problem gets confused with information relating to the original question. |
|
Back to top |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1193 Location: Dublin, Ireland
|
|
|
|
Quote: |
After the message is moved to error queue and when i tried to read messages from error queue, backout count is always '0'. Is this expected functioning.
|
Yes, since the message has not (yet) been 'backed-out' from this error queue.
Quote: |
Also the message which gets backed out has no invalid data and similar messages for same account number are processed succesfully. Only few messages are having this problem. Can you assist me on how to proceed with this.
|
There is some reason why message processing is failing for these mesasges. For example, a message which appears OK may be backed out because of some other error in procesing (e.g. database error, file-not-found). Suggest you investigate all possible reasons for a programmed rollback and/or an application abend.
Garry. |
|
Back to top |
|
|
kratos86
Active User
Joined: 17 Mar 2008 Posts: 148 Location: Anna NGR
|
|
|
|
Bill Woodger wrote: |
If you have a new question, please start a new topic, not tailgate an old one. |
Thanks for the reminder
Quote: |
Yes, since the message has not (yet) been 'backed-out' from this error queue. |
Garry, I am not sure whether i got your point. Generally when a message is backed out the indicator is updated. so when it reaches the threshold limit it is moved to the error queue. The layout of the message which is moved to error queue is having the backout count parameter. After the message is moved to error queue, i am able to read the message but i see the backout count is zero. Is this normal or something i am missing here... |
|
Back to top |
|
|
kratos86
Active User
Joined: 17 Mar 2008 Posts: 148 Location: Anna NGR
|
|
|
|
When we put the message to error queue we are moving the value of backout count to the queue which is used to check against the threshold value. |
|
Back to top |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1193 Location: Dublin, Ireland
|
|
|
|
When a message is MQPUT(1) to a queue, the backout count is set to zero. When your application determines that the backoutcount for the original message onthe original queue ios exceeded, the message is MQPUT for the first time to the error queue and so has a backoutcount of zero for that queue. The backoutcount is entirely under the control of MQ, not the application developer.
Garry. |
|
Back to top |
|
|
kratos86
Active User
Joined: 17 Mar 2008 Posts: 148 Location: Anna NGR
|
|
|
|
Garry,
Is there any documentation on what are the various possible errors for a MQ backout. |
|
Back to top |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1193 Location: Dublin, Ireland
|
|
|
|
Nothing specific that I'm aware of - there are too many possibilities.
Anything that can cause an unhandled condition in an application could cause a message to be backed out as could a handled condition where the application issues a rollback.
For example, in a two-phase commit process, any partner involved in the overall unit-of-work refusing to commit would cause a rollback - this might be due to being unable to commit because logs are full....
If a message were trying to insert a row in a database where the row already existed, the databse manager might issue a return code which would result in an otherwise perfectly good message being 'rejected' and backed-out....
The list goes on (and on, and on....)
Garry. |
|
Back to top |
|
|
|