|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Spotting UOW in Trace files. |
« View previous topic :: View next topic » |
Author |
Message
|
Rabbit |
Posted: Fri Nov 26, 2004 3:05 am Post subject: Spotting UOW in Trace files. |
|
|
 Newbie
Joined: 09 Feb 2004 Posts: 8
|
I need to confirm that our application is opening a queue for with syncpoint and commiting regularly. We are looking for Long Running UOW (Units of Work).
I've setup a trace on the client Win 2K server where the app. is and have the file.
How do I read the trace file to identify a syncpoint and commits?
How would I see any Long Running UOW?
Cheers,
C. |
|
Back to top |
|
 |
Nigelg |
Posted: Fri Nov 26, 2004 3:27 am Post subject: |
|
|
Grand Master
Joined: 02 Aug 2004 Posts: 1046
|
A trace is not the best place to do this. Add some code to your apps so that each time you call MQPUT MQGET MQCMIT MQBACK you log the call. You should be able to find any long running transaction by inspecting the log.
If you must do it in trace, the UoW is bound to an Hconn, and is ended by an MQCMIT on that Hconn. The UoW is started either by MQBEGIN (if there are any external resource managers involved in the Uow), or by setting MQPMO_SYNCPOINT in MQPUT. You can see this in the trace shortly after the 'MQPUT >>' trace entry, when the PMO is dumped. The least significant byte of the 3rd word (9th byte on Windows, 12th byte on UNIX) of the PMO will have the 02 bit set.
For example:
Quote: |
MQS MQPUT >>
MQS Hconn:
MQS Data - Length=0004
2010ED78
...
MQS Putmsgopts:
MQS Data - Length=0098
50 4D 4F 20 01 00 00 00 02 00 00 00 FF FF FF FF PMO
|
This also applies to MQGET. |
|
Back to top |
|
 |
Rabbit |
Posted: Fri Nov 26, 2004 3:57 am Post subject: no Commit after MQGET - does it matter? |
|
|
 Newbie
Joined: 09 Feb 2004 Posts: 8
|
Fantastic. Just what I needed.
I've looked at the trace and I think it could be the polling mechanism. When we do an MQGET and there is no message it looks like there is still 1 UOW. In this instance we don't commit and there is a potential for a Long running transaction.
Quote: |
--}! MQGET (rc=MQRC_NO_MSG_AVAILABLE)
---{ MQCheckUOWMix
Inputs: iUow=1, *pReason=2033
---}! MQCheckUOWMix (rc=MQRC_NO_MSG_AVAILABLE)
--}! MQGET (rc=MQRC_NO_MSG_AVAILABLE) |
Is this normal behaviour for an MQGET to start a unit of work?
When we actually process something of the queue it has a commit:
Quote: |
---} MQGET (rc=OK)
---{ MQCheckUOWMix
Inputs: iUow=1, *pReason=0
---} MQCheckUOWMix (rc=OK)
--} MQGET (rc=OK)
--{ MQCMIT
---{ MQCMIT |
Thanks again,
C.
PS: |
|
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
|
|
|
|