Author |
Message
|
jolonm |
Posted: Wed Dec 31, 2008 10:57 pm Post subject: AMQ7469: Transactions rolled back to release log space. |
|
|
Apprentice
Joined: 31 Dec 2008 Posts: 25
|
Below message is getting written in MQ Log:
--------------------------------------------------------------------------------
12/23/2008 15:16:23 - Process(2504.3) User(MUSR_MQADMIN) Program(amqzmuc0.exe)
AMQ7469: Transactions rolled back to release log space.
EXPLANATION:
The log space for the queue manager is becoming full. One or more long-running
transactions have been rolled back to release log space so that the queue
manager can continue to process requests.
ACTION:
Try to ensure that the duration of your transactions is not excessive. Consider
increasing the size of the log to allow transactions to last longer before the
log starts to become full.
--------------------------------------------------------------------------------
As far as I know about ‘transaction rolled back’, It again put the same message into the queue. It means if application has read the message from queue and before it commit if MQ encounter any error, MQ roll back the transaction and put the same message back to queue. It means, as application has already got the message in its object, the message will be at two places, 1 in the application memory and another in the queue. So when application will try to get the next message from the queue it will get the same message (duplicate).
I would like to confirm my understanding.
Please let me know what to do to handle this because we do not want to read the same message twice. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 01, 2009 3:37 am Post subject: Re: AMQ7469: Transactions rolled back to release log space. |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
jolonm wrote: |
I would like to confirm my understanding. |
Wrong.
If this error occurs, the application will receive an error from the next MQI call (2102? It's in the manual). The application should respond to this like it would any other error (WMQ or otherwise) and abort the current message processing. Hence when the application reads the queue and possibly (as you correctly say) receives the same message again it's not a duplicate because the previous incarnation wasn't processed.
Exactly the same scenario as doing a database insert when there's a shortage of locks.
 _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 01, 2009 3:40 am Post subject: Re: AMQ7469: Transactions rolled back to release log space. |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
jolonm wrote: |
Please let me know what to do to handle this because we do not want to read the same message twice. |
As I explain above, that's not a serious issue. You should still fix the transaction with the badly coded UOW that's filling the log. Or at least increase the log size, but that's not a reliable solution long term. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
jolonm |
Posted: Thu Jan 01, 2009 5:02 am Post subject: |
|
|
Apprentice
Joined: 31 Dec 2008 Posts: 25
|
What do you mean by 'next MQI call' (although i will check the MQ manual).
About 'the application will receive an error', we are not yet received any error from MQ.
I am putting one more question:
Is it possible that due to any error, can MQ return Empty message (i am sure we have not put any empty message), also is it possible that the Content of message can change due to error in MQ? |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Jan 01, 2009 5:09 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
jolonm wrote: |
Is it possible that due to any error, can MQ return Empty message (i am sure we have not put any empty message), also is it possible that the Content of message can change due to error in MQ? |
Define empty message and specify programming language.
Define content of message can change and specify MQReturnCode and MQReasonCode.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
jolonm |
Posted: Thu Jan 01, 2009 5:19 am Post subject: |
|
|
Apprentice
Joined: 31 Dec 2008 Posts: 25
|
Quote: |
Define empty message and specify programming language. |
I am using C#.Net.
Quote: |
Define content of message can change and specify MQReturnCode and MQReasonCode. |
From some times, i have started getting Empty message from MQ, not sure why. i have checked everywhere to confirm that whether the sender application is not putting empty message on queue, found no code is putting empty message.
Also we have started received wrong messages, for example:
we put below message in the queue:
<Check>This is me</Check>
But when we get this message, we receive below:
<Check>This is me</Chec
this is not always the case, and also not easy to reproduce, hence i put this question here if some body has encountered this earlier. |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Jan 01, 2009 5:44 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Looks like you have a buffer size problem and are not handling a truncated message properly. Check your gmo options.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
jolonm |
Posted: Thu Jan 01, 2009 6:42 am Post subject: |
|
|
Apprentice
Joined: 31 Dec 2008 Posts: 25
|
Quote: |
Check your gmo options. |
I am new in MQ, plesae tell me What is GMO? |
|
Back to top |
|
 |
jolonm |
Posted: Thu Jan 01, 2009 6:44 am Post subject: |
|
|
Apprentice
Joined: 31 Dec 2008 Posts: 25
|
Quote: |
I am new in MQ, plesae tell me What is GMO? |
Ok, Got it. thanks. |
|
Back to top |
|
 |
jolonm |
Posted: Thu Jan 01, 2009 6:48 am Post subject: |
|
|
Apprentice
Joined: 31 Dec 2008 Posts: 25
|
Quote: |
Check your gmo options. |
Below is from code: please assist what else should be added:
if(m_QueueConfiguration.IsTransactional)
gmo.Options |= MQC.MQPMO_SYNCPOINT; |
|
Back to top |
|
 |
jolonm |
Posted: Thu Jan 01, 2009 8:28 am Post subject: |
|
|
Apprentice
Joined: 31 Dec 2008 Posts: 25
|
Please let me know, what all gmo options will help me?
i missed to add one more thing(this might help you to understand the error)
Sometimes MQ not only removes the character from the message but it adds as well: for example:
we put below message in the queue:
<Check>This is me</Check>
But when we get this message, we receive below:
<Check>This is me</Check>k>
And as I already said, sometimes we receive empty message.
Your help will highly appreciated. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 01, 2009 8:59 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
jolonm wrote: |
Please let me know, what all gmo options will help me? |
Depends what you're trying to do. Something about rejecting truncated messages seems relevant.
jolonm wrote: |
i missed to add one more thing(this might help you to understand the error)
Sometimes MQ not only removes the character from the message but it adds as well: for example:
we put below message in the queue:
<Check>This is me</Check>
But when we get this message, we receive below:
<Check>This is me</Check>k>
And as I already said, sometimes we receive empty message.
|
You have coding issues _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
jolonm |
Posted: Thu Jan 01, 2009 9:01 am Post subject: |
|
|
Apprentice
Joined: 31 Dec 2008 Posts: 25
|
Quote: |
You have coding issues |
No, i am sure that i dont have coding issue. the same code is running from several years, and execute 10000 times daily. we had not faced such issue but from last 1 months these issue came.[/quote]
Last edited by jolonm on Sun Jan 04, 2009 9:17 pm; edited 1 time in total |
|
Back to top |
|
 |
jolonm |
Posted: Thu Jan 01, 2009 9:29 am Post subject: |
|
|
Apprentice
Joined: 31 Dec 2008 Posts: 25
|
Is this possible that missing characters of first received message will return with next message, i mean to say, for example:
Below two messages are in Q:
<Check>This is me</Check>
<Check>This is me again</Check>
so when we call 1st time Get, below message will return (last few characters are missing - not sure but might be because of buffer size (please confirm if it might be because of buffer size):
<Check>This is me</Chec
and when call Get for 2nd message, below message will return (the missing character of 1st message attached to 2nd message and received):
<Check>This is me again</Check>k> |
|
Back to top |
|
 |
jolonm |
Posted: Thu Jan 01, 2009 9:31 am Post subject: |
|
|
Apprentice
Joined: 31 Dec 2008 Posts: 25
|
one more thing:
we noticed that, MQ alter messages only when MQ rolled back the transaction. (i am not sure but might have some relation) |
|
Back to top |
|
 |
|