ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » General IBM MQ Support » Spotting UOW in Trace files.

Post new topic  Reply to topic
 Spotting UOW in Trace files. « View previous topic :: View next topic » 
Author Message
Rabbit
PostPosted: Fri Nov 26, 2004 3:05 am    Post subject: Spotting UOW in Trace files. Reply with quote

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
View user's profile Send private message
Nigelg
PostPosted: Fri Nov 26, 2004 3:27 am    Post subject: Reply with quote

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
View user's profile Send private message
Rabbit
PostPosted: Fri Nov 26, 2004 3:57 am    Post subject: no Commit after MQGET - does it matter? Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General IBM MQ Support » Spotting UOW in Trace files.
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.