I understand about the indexing. That was why I specifically excluded it from consideration.
"Potkay, Peter M (PLC, IT)" To: [EMAIL PROTECTED] <[EMAIL PROTECTED] cc: RTFORD.COM> Subject: Re: MQGMO-WAITINTERVAL Sent by: "MQSeries List" <[EMAIL PROTECTED] AC.AT> 07/18/2003 10:44 AM Please respond to "MQSeries List" If you index your queue by CorrelId or Message ID, whichever you method you use to select your messages, you will see big performance gain. We have an IMS app that does a get by CorrelID. Once, the reply queue had 3,000 orphans (don' t ask, its been fixed). Anyway, while that queue had 3,000 messages on it, the IMS performance folks were howling on all the CPU being used by MQ. I cleared out the queue and they were happy. I indexed the queue, put 10,000 dummy messages in the queue, and asked the IMS performance folks what they saw now. No CPU usage problems at all. -----Original Message----- From: Dave Adam [mailto:[EMAIL PROTECTED] Sent: Friday, July 18, 2003 10:31 AM To: [EMAIL PROTECTED] Subject: Re: MQGMO-WAITINTERVAL I guess I should have included our design specs, this was a receiver only channel from NT to ZOS (I am the CICS guy not MQ) as it hit ZOS there was a trigger on the queue that would call a process that made a request to our scheduling package to submit a job to off-load the queue to a VSAM file for a daily process (and the structure of the data was that each detail line was a separate message and could consist of up to 5000 messages per entity when I started to look at this I made some suggestions, one was get the entity to a single message, which we have done now we took the wait out and no delays, but are in the process of removing the trigger and scheduling the off-load job to run a couple times a day, and as the first step of the daily process however, we have a second application, that requests thousands of jobs that do the same thing to DB2, and I was hoping to add a wait so I could cut the jobs to a handful, by keeping the off-load alive longer (none of this goes through CICS) but you mentioned orphans that increase in numbers making your process run slower and have a possibility of not meeting goals could you not write an audit trail when the request is made in CICS, so you could schedule a process that could determine if the orphan could be deleted for our SYSPlex, we use the coupling facility for Temp Storage and I run a task every 2 hours that (by queue) determines if it is still valid, and if not, I delete it, and some of the queues have up to a 24 hour lag time you are absolutely correct about the level of understanding on my part, and I can relate to your situation, but even with the lack of knowledge, I removed 90% of the definitions in our MQ system, and we now are running without calls to the help desk I'll be the first one to admit that I don't know or understand MQ, but I will also tell you I have had alot of fun redoing this environment, eliminating errors, having programmers make changes and actually see the results they expected maybe we have too simplistic an environment now, but I can't seem to find the complexity people said we had so your insight into the real-time distributed process hits home and is one I will pass on to our Architects, who I hope take ownership of MQ here Dave Adam Supervalu Home Office Project Specialist (952) 828-4736 [EMAIL PROTECTED] If one of the engines on a two engine plane fails The other engine will always get you to the site of the crash -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Ronald Weinger <[EMAIL PROTECTED]> Sent by: MQSeries List To: <[EMAIL PROTECTED]> [EMAIL PROTECTED] cc: Subject: Re: 07/18/2003 07:28 AM MQGMO-WAITINTERVAL Please respond to MQSeries List Does anyone understand the internal process? Consider: (Assume priorities and any other MQ and CICS settings are the same, and no indexing) Assume it takes up to 30 seconds for a remote application to process a reply. In that time, 10 CICS transactions in 1 second intervals send requests and issue a GET-WAIT with CORRELID for 40 seconds against the same reply queue. After 10 seconds there would be 10 suspended CICS transactions waiting for a response. Since we do not know what the requests were, or where they went, but only that they all come back to the same reply queue, we can not assume they will be processed in order. Within a 4 second period,replies are received, for the 10th transaction, 7th,6th and 3rd, in that order. MQ has to 'read' the queue and determine which message belongs to which transaction, provide that transaction with the message, and get it dispatched, or it has to determine which transaction belongs to the message, have that transaction dispatched so it can re-issue the MQGET . Which of those 4 transactions will be 'given the reply first? If there are 600 previously 'orphaned' messages on the queue (that were not picked up because of previously expired waitintervals), does MQ have to loop though these messages each time and somehow check them against curent requests, since it can not know that any of the older messages are orphaned, until it reaches the 'new' replies? As the reply queue depth increases , that would take longer and longer. What if one of the 'current' replies arrives at 39.995 seconds. With a 40.000 sec waitinterval, the response came back in time, but could the transaction timeout before MQ can process the reply message? If there are messages on the reply queue that MQ hasn't somehow 'processed' against waiting requests it can not ligitimately have those transactions that exceed the waitinterval sent a 2033, or can it? "Tim Armstrong" <[EMAIL PROTECTED] To: [EMAIL PROTECTED] OM> cc: Sent by: Subject: Re: MQGMO-WAITINTERVAL "MQSeries List" <[EMAIL PROTECTED] n.AC.AT> 07/17/2003 06:52 PM Please respond to "MQSeries List" However this may well be the desired behaviour in that it saves the overhead involved in connecting to the queue manager and opening queues for each message that arrives. Also if you use trigger on first and close the queue and disconnect while messages are still on the queue another trigger message gets fired, its designed this way to handle the small interval in which a message can arrive between the time your get fails with rc=2033(no more messages) and you issue the close for the queue. However it can also cause a triggering loop and your application should check the backout count of the messages it retrieves. Regards Tim A Dave Adam <[EMAIL PROTECTED] To: [EMAIL PROTECTED] RVALU.COM> cc: Sent by: MQSeries Subject: Re: MQGMO-WAITINTERVAL List <[EMAIL PROTECTED] N.AC.AT> 18/07/2003 05:30 Please respond to MQSeries List thanks Dave Adam Supervalu Home Office Project Specialist (952) 828-4736 [EMAIL PROTECTED] If one of the engines on a two engine plane fails The other engine will always get you to the site of the crash -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- "Potkay, Peter M (PLC, IT)" <[EMAIL PROTECTED]> To: Sent by: MQSeries List [EMAIL PROTECTED] <[EMAIL PROTECTED]> cc: Subject: Re: MQGMO-WAITINTERVAL 07/17/2003 01:34 PM Please respond to MQSeries List "the batch job would get triggered on the message entering the queue, then sit in the initiator for up to 30 seconds, in case another message comes along, and the trigger would be nonfunctional for that 30 seconds " >>>Correct, if the queue that is triggered is currently opened by an app, then no more trigger message will be generated for that queue. "I assume that the timer gets reset to 30 seconds on every message that comes through, so the job could stay active all day if we get 1 message every 20 seconds" >>>Correct. -----Original Message----- From: Dave Adam [mailto:[EMAIL PROTECTED] Sent: Thursday, July 17, 2003 2:24 PM To: [EMAIL PROTECTED] Subject: Re: MQGMO-WAITINTERVAL okay, I finally found this part in my book WaitInterval The WaitInterval field specifies the maximum time (in milliseconds) that the MQGET call waits for a message to arrive on the queue when you use the MQGMO_WAIT option. If no message arrives within the time specified in WaitInterval, the call completes and returns a reason code showing that there was no message that matched your selection criteria on the queue. the sample program had 2 parts, but said the default was 5 minutes compute mqgmo-option = mqgmo-wait + ... and a move of 30000 to mqgmo-waitinterval I take it, that: the batch job would get triggered on the message entering the queue, then sit in the initiator for up to 30 seconds, in case another message comes along, and the trigger would be nonfunctional for that 30 seconds I assume that the timer gets reset to 30 seconds on every message that comes through, so the job could stay active all day if we get 1 message every 20 seconds Dave Adam Supervalu Home Office Project Specialist (952) 828-4736 [EMAIL PROTECTED] If one of the engines on a two engine plane fails The other engine will always get you to the site of the crash -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Stefan Sievert <[EMAIL PROTECTED]> To: Sent by: MQSeries List [EMAIL PROTECTED] <[EMAIL PROTECTED]> cc: Subject: Re: MQGMO-WAITINTERVAL 07/17/2003 12:16 PM Please respond to MQSeries List Dave, here's what my book says: [quote] Wait interval. This is the approximate time, expressed in milliseconds, that the MQGET call waits for a suitable message to arrive. [...] On OS/390, the period of time that the MQGET call actually waits is affected by system loading and work-scheduling considerations, and can vary between the value specified for WaitInterval and approximately 250 milliseconds greater than WaitInterval. [/quote] So, your value of 30000 should lead to a 30 second wait on the MQGET. Your elapsed job time sounds like it confirms that. HTH, Stefan >From: Dave Adam <[EMAIL PROTECTED]> >Reply-To: MQSeries List <[EMAIL PROTECTED]> >To: [EMAIL PROTECTED] >Subject: MQGMO-WAITINTERVAL >Date: Thu, 17 Jul 2003 11:05:04 -0500 > >what is the breakdown for MQGMO-WAITINTERVAL > >does a value of 30000 equate to 30 seconds > >book implies it is 5 minutes, but job runs for 35 seconds, with the wait >specified at PIC S9(09) BINARY VALUE 30000 > >Dave Adam >Supervalu Home Office >Project Specialist >(952) 828-4736 >[EMAIL PROTECTED] > >If one of the engines on a two engine plane fails >The other engine will always get you to the site of the crash > -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- _________________________________________________________________ Protect your PC - get McAfee.com VirusScan Online http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963 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 The information contained in this message may be CONFIDENTIAL and is for the intended addressee only. Any unauthorized use, dissemination of the information, or copying of this message is prohibited. If you are not the intended addressee, please notify the sender immediately and delete this message. 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 The information contained in this message may be CONFIDENTIAL and is for the intended addressee only. Any unauthorized use, dissemination of the information, or copying of this message is prohibited. If you are not the intended addressee, please notify the sender immediately and delete this message. 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