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 » Multiphase Commit » MQGET with SYNCPOINT and WaitInteval does a log write?

Post new topic  Reply to topic
 MQGET with SYNCPOINT and WaitInteval does a log write? « View previous topic :: View next topic » 
Author Message
gbaddeley
PostPosted: Wed Jun 05, 2013 4:02 pm    Post subject: MQGET with SYNCPOINT and WaitInteval does a log write? Reply with quote

Jedi

Joined: 25 Mar 2003
Posts: 2492
Location: Melbourne, Australia

Hi MQ heads,

Consider a program that does an initial call to MQGET with SYNCPOINT option and a WaitInteval, and there is no message immediately available.

Does anyone know for sure if does a write to the Active Log at this time?
(and hence has an active recovery record in the current log file until the UOW ends)

My research tends to indicate this is true, but I can't find it in the WMQ Infocenters. No speculation please.
_________________
Glenn
Back to top
View user's profile Send private message
gbaddeley
PostPosted: Wed Jun 05, 2013 4:59 pm    Post subject: Reply with quote

Jedi

Joined: 25 Mar 2003
Posts: 2492
Location: Melbourne, Australia

Some testing shows that it does not write to the Log at the time the first MQGET is called (start of UOW).

It writes to the Log when a Persistent message is returned.

It does not write to the Log when a Non-Persistent message is returned.

The UOW ends when it calls MQCMIT. The Log dependence then ends if any Persistent messages were consumed. ie. DIS CONN(x) TYPE(CONN) shows UOWLOGDA & UOWLODTI go back to blank values. However, the connection still has a QMURID, UOWSTDA, UOWSTTI and UOWSTATE=ACTIVE.
_________________
Glenn
Back to top
View user's profile Send private message
gbaddeley
PostPosted: Wed Jun 05, 2013 6:10 pm    Post subject: Reply with quote

Jedi

Joined: 25 Mar 2003
Posts: 2492
Location: Melbourne, Australia

More thinking out aloud....

A looping MQGET program with MQGMO_SYNCPOINT can easily create a long running UOW if consumes messages and does not commit for each one.

This is not a concern for tying up the Active Logs if it is only processing Non Persistent messages, because no log writes occur.

If there happens to be a Persistent message in the sequence of messages consumed in the UOW, MQ will do a log write in the UOW, and tie up that Log file. (ie. if its a circular log, it can't be reused until the UOW is finished).

It is easy to imagine a program design that consumes messages over an extended period of time under syncpoint until it has a certain number (ie. a batch), and then processes them and does a commit. With Circular logging, this design creates a road block in the sequence of circular log reuse if there are persistent messages in the mix. (Except on z/OS where log shunting can overcome this situation)

If there is lots of logging activity going on for persistent messages by other porgrams, this may result in secondary logs being created, or at worst, transactions being rolled back because of exhausted primary and secondary logs.

Is my line of thinking correct?
_________________
Glenn
Back to top
View user's profile Send private message
PeterPotkay
PostPosted: Wed Jun 05, 2013 6:14 pm    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7717

gbaddeley wrote:

If there is lots of logging activity going on for persistent messages by other porgrams, this may result in secondary logs being created, or at worst, transactions being rolled back because of exhausted primary and secondary logs.

Wouldn't the only UOW that gets rolled back be for the one program that is keeping the long UOW of work open. Other programs would not notice anything amiss, I think.


gbaddeley wrote:

Some testing shows that it does not write to the Log at the time the first MQGET is called (start of UOW).

Does a phone call start when you dial the numbers, or only when the other side picks up?
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
bruce2359
PostPosted: Wed Jun 05, 2013 7:03 pm    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9394
Location: US: west coast, almost. Otherwise, enroute.

PeterPotkay wrote:
Does a phone call start when you dial the numbers, or only when the other side picks up?

If a tree falls in a forest ...
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
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 » Multiphase Commit » MQGET with SYNCPOINT and WaitInteval does a log write?
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.