|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
MQ is working weird with XA |
« View previous topic :: View next topic » |
Author |
Message
|
shani |
Posted: Thu Aug 16, 2007 1:35 pm Post subject: MQ is working weird with XA |
|
|
Newbie
Joined: 16 Aug 2007 Posts: 2
|
I am using Web Logic 8.1 and MQ 6 (XA enabled) and facing strange scenarios as following.
I am putting 500 msgs on q1, MDB is listening to the queue and process the messages by putting them on the destination queue. During this processing I kill the server (before it can process 500 msgs) and bring it back up. When the server comes up I let it process rest of the messages and reover from any hung transactions.
1) In some instances I cannot read all 500 messages from the destination queue, say I can only read 499 messages. I cannot see the missing message on any queue. I have tried rsvmqtrn to recover from any in-doubt transaction but nothing is recovered. The only thing that help is restarting the queue manager. Once I restart the queue manager the missing message appears from somewhere and MDB can listen it and process it and put on the destination queue and I can read it from there.
2) The other scenario is that in some instances I can see the messages sitting on the destination queue i.e. MDB has read the messages from queue, processed them and put them on destination queue but once I brought up the crashed server it is unable to read that message. I have also tried rsvmqtrn but no recovery. Only thing that helps here is also queue manager recycle.
My question is:
1) Where the missing message goes before the queue manager restart? Is there any other way to recover this message without restarting the queue manager?
2) Why rsvmqtrn is not working when I can see that there are messages on the queue. Also when I try to check the in-doubt transaction by dspmqtrn -m qmanager there is nothing found.
3) Is there any way to recover from these situations withut recycling teh queue manager as this is not the optimal solution that we want to do in prod env.
Thanks for any suggestion. |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Aug 16, 2007 11:27 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
I believe your problem is with your UOW handling.
Messages that are not committed count towards queue depth but cannot be viewed. And dspmqtrn will only show UOW's that are no longer viable.
You should check into how your Global UOW that MQ is inrolled in is being handled.
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
shani |
Posted: Mon Aug 20, 2007 6:27 am Post subject: Re: |
|
|
Newbie
Joined: 16 Aug 2007 Posts: 2
|
Thanks for the reply, though I am not sure what you mean by unit of work handling. I am using EJBs (stateless and MDB) with container managed transaction to put and get messages fom queue and all connection objects are created from within EJBs. I am using XA enabled connection factory for MQ and foreign JMS from WLS.
As a side note XA is working fine in most cases and recovery process works as it suppose to. It is just in some tests that I have observerd that only qManager restart is the only option. I am guessing these messages are before prepared state while the missing messages are one prior to prepare state and what is the best way to deal with these messages without restarting qManager. |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Aug 20, 2007 7:52 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
look into dsmqtrn and rsvmqtrn. These commands will allow you to look at units of work that are in progress for the qmgr and are possibly dead to the WL. Some of it may as well depend on how WL handles in flight transaction at restart...
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|