Author |
Message
|
zpat |
Posted: Thu Mar 11, 2010 2:52 am Post subject: Uncommitted messages on queue that is not open |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
I have a strange problem, where a queue has a depth of 24, but I can't browse any messages. The queue status indicates uncommitted messages but there are no open input or output handles.
Quote: |
DIS QSTATUS(XXX) ALL TYPE(QUEUE)
AMQ8450: Display queue status details.
QUEUE(XXX) TYPE(QUEUE)
CURDEPTH(24) IPPROCS(0)
LGETDATE( ) LGETTIME( )
LPUTDATE( ) LPUTTIME( )
MONQ(OFF) MSGAGE( )
OPPROCS(0) QTIME(,)
UNCOM(YES) |
How can this happen?
If I stop the QM, the 24 messages appear but the backout count for each is zero.
Does this mean these are uncommitted MQPUTs - but from where?
MQ 6.0.2.8, AIX, WMB 6.1.05 is producing/consuming these messages. |
|
Back to top |
|
 |
Mr Butcher |
Posted: Thu Mar 11, 2010 3:07 am Post subject: |
|
|
 Padawan
Joined: 23 May 2005 Posts: 1716
|
IMHO, these could be uncomitted MQGETs too. Maybe it is possible from the message header or content to identify the failing component.
Any errors in the application or WMB?
Looks like the putting or getting process abended, but UOW remains indoubt unless qmgr is restarted and is performing a backout (?!?) of the changes...... _________________ Regards, Butcher |
|
Back to top |
|
 |
sumit |
Posted: Thu Mar 11, 2010 5:59 am Post subject: |
|
|
Partisan
Joined: 19 Jan 2006 Posts: 398
|
Quote: |
where a queue has a depth of 24, but I can't browse any messages |
. These looks like uncommitted msgs. Is this a cluster queue? If so, you may need to see if all cluster channels are running or not. we have seen the similar problem before.
The probable workaround was, check if all the cluster channels are running or not. If not, address the problem. Stopping and resolving the problematic cluster channel also helped. _________________ Regards
Sumit |
|
Back to top |
|
 |
zpat |
Posted: Thu Mar 11, 2010 6:26 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
|
Back to top |
|
 |
markt |
Posted: Thu Mar 11, 2010 6:30 am Post subject: |
|
|
 Knight
Joined: 14 May 2002 Posts: 508
|
just because an application has closed a queue, that does not mean it's committed its transaction yet. A transaction is scoped to the hConn, not the hObj. Look at DIS CONN to see which apps are running. |
|
Back to top |
|
 |
zpat |
Posted: Thu Mar 11, 2010 9:22 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
That's a good point, any way to associated the connection handled with the queue in question, other than by elimination (stopping all the apps one by one)?
Would you say WMB does this, or is it likely to commit before dropping a queue handle? |
|
Back to top |
|
 |
Vitor |
Posted: Thu Mar 11, 2010 9:26 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
zpat wrote: |
Would you say WMB does this, or is it likely to commit before dropping a queue handle? |
WMB only commits when the transactionality is correctly set, but it tends to be well behaved in these matters. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Mar 11, 2010 1:45 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
zpat wrote: |
That's a good point, any way to associated the connection handled with the queue in question, other than by elimination (stopping all the apps one by one)?
Would you say WMB does this, or is it likely to commit before dropping a queue handle? |
I would look for a putting app that did the put but crashed before issuing a commit. If the crash point was after the prepare to commit call (XA) you may force or roll back using rsvmqtrn. Else you may have to wait until the qmgr is bounced to clear the messages.
I suspect a put app because with an uncommitted get, the qdepth would have been decreased and it increases again with the rollback. The uncommitted put increases the queuedepth but there is no change in queuedepth on commit.
Hope it helps some.  _________________ MQ & Broker admin |
|
Back to top |
|
 |
mvic |
Posted: Thu Mar 11, 2010 2:39 pm Post subject: |
|
|
 Jedi
Joined: 09 Mar 2004 Posts: 2080
|
markt wrote: |
Look at DIS CONN to see which apps are running. |
Also DIS QSTATUS ... TYPE(HANDLE) can help. And dspmqtrn (run it a couple of times separated by, say, 30 seconds). |
|
Back to top |
|
 |
|