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 Discussion » Expired messages cleaning

Post new topic  Reply to topic Goto page Previous  1, 2, 3
 Expired messages cleaning « View previous topic :: View next topic » 
Author Message
markt
PostPosted: Tue Oct 04, 2005 3:50 am    Post subject: Reply with quote

Knight

Joined: 14 May 2002
Posts: 508

a) it is new function in V6
b) the equivalent of ExpiryInt is not an exposed parameter.
c) the precise behaviour of expiry has NEVER been documented, at least apart from the z/OS ExpiryInt. The only guarantee is exactly the same as it's always been - that you will never be able to GET an expired message. The behaviour has changed several times internally, so any "rules" that people discovered - eg it required a destructive get or a browse, that might vary by platform and by release - were not part of the defined produc externals.
d) a loaded queue is (to a first approximation) a queue where someone has it open or has only recently closed it.
e) if a queue does not get loaded (because noone opens it) then any expired messages on the queue continue to sit on the queue. The queue manager doesn't want to go to the expense of setting up all the memory and the I/O for a queue that noone's actually using.

So even with the new internals you cannot be certain that a message will be preemptively removed when expired. It's just a lot more likely.
Back to top
View user's profile Send private message
hopsala
PostPosted: Tue Oct 04, 2005 6:08 am    Post subject: Reply with quote

Guardian

Joined: 24 Sep 2004
Posts: 960

markt wrote:
d) a loaded queue is (to a first approximation) a queue where someone has it open or has only recently closed it.
e) if a queue does not get loaded (because noone opens it) then any expired messages on the queue continue to sit on the queue. The queue manager doesn't want to go to the expense of setting up all the memory and the I/O for a queue that noone's actually using.

So even with the new internals you cannot be certain that a message will be preemptively removed when expired. It's just a lot more likely.

However, even though it is undocumented and thus risky (pending changes in other versions - undocumented implicitly means unsupported), all those that had written an "expiry message cleaner" that MQGETs (BROWSE or other methods) from the queue, can now just MQOPEN and immediately close, and that will make sure all expired msgs are taken care of.
Back to top
View user's profile Send private message
PeterPotkay
PostPosted: Tue Oct 04, 2005 9:57 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

And I assume MQOPEN just for MQINQ is enough, as that is all I had open on the queue (using the little WatchQ Support Pac) watching the depth refresh every second.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
Michael Dag
PostPosted: Tue Oct 04, 2005 10:52 am    Post subject: Reply with quote

Jedi Knight

Joined: 13 Jun 2002
Posts: 2607
Location: The Netherlands (Amsterdam)

markt wrote:
a) it is new function in V6

nice
markt wrote:
b) the equivalent of ExpiryInt is not an exposed parameter.

not so nice
markt wrote:
c) the precise behaviour of expiry has NEVER been documented, at least apart from the z/OS ExpiryInt. The only guarantee is exactly the same as it's always been - that you will never be able to GET an expired message. The behaviour has changed several times internally, so any "rules" that people discovered - eg it required a destructive get or a browse, that might vary by platform and by release - were not part of the defined produc externals.

and it could change again? (good reason for not documenting something...)
markt wrote:
d) a loaded queue is (to a first approximation) a queue where someone has it open or has only recently closed it.

BTW does this also apply to the MCA opening the queue???
markt wrote:
So even with the new internals you cannot be certain that a message will be preemptively removed when expired. It's just a lot more likely.

true, but then you could "see" the messages before they expired...

nice trick question for the V6 certification test
_________________
Michael



MQSystems Facebook page
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
hopsala
PostPosted: Tue Oct 04, 2005 2:21 pm    Post subject: Reply with quote

Guardian

Joined: 24 Sep 2004
Posts: 960

PeterPotkay wrote:
And I assume MQOPEN just for MQINQ is enough, as that is all I had open on the queue (using the little WatchQ Support Pac) watching the depth refresh every second.

Actually any sort of MQOPEN should be sufficient, since once you MQOPEN a queue it is "loaded", I have this excerpt out of the "v5.3 Internal presentation" by the illustrious Paul Clark of IBM (courtesy of wayne):

In the MQOPEN processing chapter, Paul Clark wrote:
The DAP performs the operations needed to make the physical (local) queue available. This is termed loading the
queue. It involves opening the file containing the underlying message data and allocating the shared memory buffers
and other shared resources necessary for the queue to be used. Of course, if the queue is already loaded, this work
can be avoided

Granted this is 5.3 behavior, and undocumented behavior at that, but really this is cross-version internal processing, and i'm quite sure it hasn't changed in v6.
Back to top
View user's profile Send private message
hopsala
PostPosted: Tue Oct 04, 2005 2:23 pm    Post subject: Reply with quote

Guardian

Joined: 24 Sep 2004
Posts: 960

Michael Dag wrote:
markt wrote:
d) a loaded queue is (to a first approximation) a queue where someone has it open or has only recently closed it.

BTW does this also apply to the MCA opening the queue???

Yes. An MCA is an MQ appl like any other, give or take a few mq calls only available for MCA's, MQCONN-MQOPEN-MQGET processing is normal.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Thu Nov 09, 2006 9:29 am    Post subject: Reply with quote

Guest




Expiry is documented in substantial detail in the Application Programming Reference (sc34-6596-00), Chapter 12, page 151.
Back to top
Display posts from previous:   
Post new topic  Reply to topic Goto page Previous  1, 2, 3 Page 3 of 3

MQSeries.net Forum Index » General Discussion » Expired messages cleaning
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.