You're right Gregg, the behaviour I described occurs in MQSeries v2.1 and earlier. I missed this enhancement when looking at the upgrade to 5.3.
Back on the original question, you still have to browse past the location of the message. In a distributed environment, you still need to run a periodic browse of the queue if all normal access is via messageid or correlid. On the mainframe, MQ can do this for you. The relevent slice from the Application Programming Reference manual is: After a message's expiry time has elapsed, it becomes eligible to be discarded by the queue manager. In the current implementations, the message is discarded when a browse or nonbrowse MQGET call occurs that would have returned the message had it not already expired. This is documented with the Expiry field of the MQMD structure. Neil Casey National Australia Bank Southern Star Technology WebSphere MQ Support 1/122 Lewis Rd Wantirna South office. +61 3 9886 2375 (x82375) mobile. +61 414 615 334 "Tuben, Gregg" <[EMAIL PROTECTED] To: [EMAIL PROTECTED] COM> cc: Sent by: MQSeries Subject: Re: Clearing Expiry Messages List <[EMAIL PROTECTED] n.AC.AT> 08/04/2004 11:17 Please respond to MQSeries List With WSMQ for z/OS the Get does not need to be destructive for the messages to be deleted. Any attempt to read an expired message causes it to be deleted. Gregg Tuben Lead Developer z/OS WSMQ products BMC Software Inc. -----Original Message----- From: Neil Casey [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 07, 2004 6:26 PM To: [EMAIL PROTECTED] Subject: Re: Clearing Expiry Messages Hi guys, my experience with GET via correlid (both MF and distributed) indicates that a GET via correlid at current WMQ levels does not clean the queue. On MF, you need to do a destructive get, which would have read the message, and commit, or else you need to use the new cleanup capbility in MQ5.3. On the distributed side, you need to browse sequentially past the message. IBM have explicitly made indexing available on the MF, but I believe that it is there implicitly on distributed platforms. The performance impact of scanning is just too large to put with. Regards, Neil Casey "Potkay, Peter M (PLC, IT)" To: [EMAIL PROTECTED] <[EMAIL PROTECTED] cc: RTFORD.COM> Subject: Re: Clearing Expiry Messages Sent by: MQSeries List <[EMAIL PROTECTED] AC.AT> 08/04/2004 07:06 Please respond to MQSeries List Jeff wrote: "If the Correl Id does not match, MQ DOES NOT do a Expiry check." Actually, it does, and the Expired message will go away. But keep in mind the thought of Indexed queues on the MF, which will prevent every message being searched from top to bottom when doing an MQGET, even for a specific ID. -----Original Message----- From: Jeff A Tressler [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 07, 2004 4:59 PM To: [EMAIL PROTECTED] Subject: Re: Clearing Expiry Messages >Set an Expiry just above your Wait Interval >is valid, but keep in mind that your queues >will be cleared almost immediately of any >orphaned messages as subsequent gets execute. > This is what I understand in general, here is the specifics of my issue and how I understand the issue. Our application reads by Correl Id. I assume the read checks each message sequentially in the queue to see if there is a matching Correl Id. If the Correl Id does not match, MQ DOES NOT do a Expiry check. This is my assumption, I assume that it only does an expiry check when it actually reads the message (GET or BROWSE). If the Correl Id does not match the id supplied by the application then the message does not get deleted. Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com Archive: http://vm.akh-wien.ac.at/MQSeries.archive This communication, including attachments, is for the exclusive use of addressee and may contain proprietary, confidential or privileged information. If you are not the intended recipient, any use, copying, disclosure, dissemination or distribution is strictly prohibited. If you are not the intended recipient, please notify the sender immediately by return email and delete this communication and destroy all copies. Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com Archive: http://vm.akh-wien.ac.at/MQSeries.archive Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com Archive: http://vm.akh-wien.ac.at/MQSeries.archive Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com Archive: http://vm.akh-wien.ac.at/MQSeries.archive Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com Archive: http://vm.akh-wien.ac.at/MQSeries.archive