Author |
Message
|
i.x |
Posted: Fri Mar 04, 2005 2:44 pm Post subject: MQ V 5.3 CSD08 - Triggering |
|
|
Apprentice
Joined: 11 Aug 2004 Posts: 26
|
Hello guys,
i have a strange situation on my queue manager.
I put on the trigger if one message is in the queue a script is triggerd, which reads the message and put it to another queue.
It works all fine, but:
One time a day the triggering is not working correctly.
For example:
A message is put on the queue at 2:00 am , but the scripts is triggerd on 2:15 am... (about 15 minutes too late).
I don't see any errors for reading or putting the message, and no errors by script or MQ
Its really strange, because of its working all the time , until one time a day.. after the delay , all is working as designed...
I run MQ V5.3 (with CSD08) under Windows 2000 Server...
Do you have any idea, why the delay is coming up?
Its very important that the messages are in time.. (for other processes)...
Please help me, i dont have any idea
Thanks! |
|
Back to top |
|
 |
csmith28 |
Posted: Fri Mar 04, 2005 2:54 pm Post subject: |
|
|
 Grand Master
Joined: 15 Jul 2003 Posts: 1196 Location: Arizona
|
Odd, is there anything in the event logs?
Is there an AtJob or Sceduled task running at 02:00 that would monopolize the servers resources? _________________ Yes, I am an agent of Satan but my duties are largely ceremonial. |
|
Back to top |
|
 |
i.x |
Posted: Fri Mar 04, 2005 3:11 pm Post subject: |
|
|
Apprentice
Joined: 11 Aug 2004 Posts: 26
|
csmith28 wrote: |
Odd, is there anything in the event logs?
Is there an AtJob or Sceduled task running at 02:00 that would monopolize the servers resources? |
no nothing in the logs...
and no schedulde tasks running...
i had a performance monitor running to see any cpu or memory uses.. but nothing... all is normal  |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Mar 04, 2005 3:40 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Is it possible that, although the message was PUT on the queue at 2:00, it was not committed until 2:15? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
JT |
Posted: Fri Mar 04, 2005 5:00 pm Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
Quote: |
A message is put on the queue at 2:00 am |
How was the message put to the queue, i.e. remotely, client? |
|
Back to top |
|
 |
i.x |
Posted: Sat Mar 05, 2005 2:33 am Post subject: |
|
|
Apprentice
Joined: 11 Aug 2004 Posts: 26
|
@jefflowrey:
How do you mean commit? I get and put the message over a perl script that i wrote.
I looked now in the documentation and i found the follwing command "MQCMIT" - can this be the commit command?
btw if this is the problem, so all messages must have a delay or?
@JT:
The message was put over a remote queue manager into a local queue of my queue manager. |
|
Back to top |
|
 |
jefflowrey |
Posted: Sat Mar 05, 2005 5:36 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
If the message came from a remote queue manager, rather than directly from an application, then the problem most likely was with the channel or the network.
Just because the message was put to the remote queue at 2:00 doesn't mean it will show up on the local queue at 2:00 - EVER.
Also, it could simply be that the clock on the local queue manager is 15 minutes faster than the clock on the remote qm. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
i.x |
Posted: Sat Mar 05, 2005 5:41 am Post subject: |
|
|
Apprentice
Joined: 11 Aug 2004 Posts: 26
|
jefflowrey wrote: |
If the message came from a remote queue manager, rather than directly from an application, then the problem most likely was with the channel or the network.
Just because the message was put to the remote queue at 2:00 doesn't mean it will show up on the local queue at 2:00 - EVER.
Also, it could simply be that the clock on the local queue manager is 15 minutes faster than the clock on the remote qm. |
hello,
no this is definitly not the problem, because i see the message in the local queue of my queue manager, and after about 15 minutes the message is in the other queue, where it should be put.
There is no problem with the network. The clock is also not the problem because i see the message in my local queue and the message is not put to the other remote queue (in my queue manager).
I also write a log for my script with a time stamp and so i see that is is put about 15 minutes after arrival... so the triggering is not working correctly  |
|
Back to top |
|
 |
fjb_saper |
Posted: Sat Mar 05, 2005 6:39 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
What do you mean with see?
Qdepth is not accurate as it contains uncommitted messages and all kind of messages that are not in a gettable state.
If you can browse the message it means that it is truely there.
As well if you have a process servicing the queue (gets oproc? in qs) then the trigger will not happen because your process is supposed to take care of the message.
Your delay may be caused by
a) time for process disconnecting from queue
b) qmgr trigint property.
If no process is servicing the queue and there is a message on it and the trigger monitor is running you will get another trigger generated at trigint interval (we have it set to 5 mins = 300,000)
Enjoy  |
|
Back to top |
|
 |
PeterPotkay |
Posted: Sat Mar 05, 2005 7:56 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
fjb_saper wrote: |
As well if you have a process servicing the queue (gets oproc? in qs) then the trigger will not happen because your process is supposed to take care of the message.
|
OPROCS can be > 0 without effecting trigger on first. But if IPROCS is 1 or higher, you will not get another trigger message for trigger on first queues until the IPROCS goes to zero. If IPROCS is 1 or higher, the QM assumes you have the queue open for MQGETs, so why waste a trigger message? Once IPROCS goes to 0, if at that point there is still a queue depth > 0, you will get retriggered. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
jefflowrey |
Posted: Sat Mar 05, 2005 8:19 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Let's agree on terms, first.
You have QMGR A and a QMGRB.
An application is connected to QMGRA and is trying to send a message to QMGRB.
QMGRA has a Remote Queue Definition called RQ1. This is the queue that the Application PUTs to. QMGRA also has XMITQB, which is the transmission queue for the sender channel to QMGRB.
RQ1 points to LQ1 on QMGRB.
LQ1 is a local queue on QMGRB.
Okay? So now there should be no confusion about local queues and remote queues.
When your application PUTS to RQ1, the message gets put on XMITQB. The channel then AT SOME POINT is started to move the message to LQ1 on QMGRB.
Then, after the message is moved, a trigger occurs on LQ1 and causes your other program to start.
You say that the PUT to RQ1 happens at 2:00, and the trigger on LQ1 happens at 2:15.
You say you have verified that the clock on QMGRA is NOT 15 minutes different than the clock on QMGRB.
You say that there is no delay in starting the channel between QMGRA and QMGRB after the message gets put on the XMITQB.
Is this all correct? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
i.x |
Posted: Sat Mar 05, 2005 8:30 am Post subject: |
|
|
Apprentice
Joined: 11 Aug 2004 Posts: 26
|
I mean with "see" , that i can browse the messages in the queue.
So i look at my mq properties and here is it:
Trigger Interval: 999999999
Maximum Uncommited messages: 10000
Maximum open handles: 256
The trigger type on my queue is "First"
@ jefflowrey:
Not to 100 percent:
Until this point it is all correct "You say that the PUT to RQ1 happens at 2:00, and the trigger on LQ1 happens at 2:15. "
The message which came from QMGRA lies in the LQ1 on QMGRB. (this all works perfect - i can broswe it too).
The LQ1 on QMGRB has a trigger which should run a process (PR1). The PR1 is a perl script, which should reads the message, create a file and move the message to anoter Queue.
The message is coming into LQ1 on 2:00 am (you can browse the messages) but the trigger is run at 2:15
The definition of LQ1 has the trigger type "first" and on  |
|
Back to top |
|
 |
PeterPotkay |
Posted: Sat Mar 05, 2005 8:37 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Before you browse the queue......
At 159 AM, what is the IPROCS count on LQ1?
What is the IPROCS count on LQ1 between 1:59 and 2:14AM? _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
i.x |
Posted: Sat Mar 05, 2005 8:41 am Post subject: |
|
|
Apprentice
Joined: 11 Aug 2004 Posts: 26
|
PeterPotkay wrote: |
Before you browse the queue......
At 159 AM, what is the IPROCS count on LQ1?
What is the IPROCS count on LQ1 between 1:59 and 2:14AM? |
that's really dificullt to say, because the messages are coming from a supplier and not to a defined time. (and i am not looking all the time at the queue manager)
The 2:00 am and 2:15 am was only a example from me. It can also happend from 2:40 am to 3:00 or some other times :-/
Can you explain how i get the IPROCS under the MQ Explorer? and which effects this value have for the delay time?
--- edit
i only have this problems under win2k , not under AIX  |
|
Back to top |
|
 |
JT |
Posted: Sat Mar 05, 2005 8:48 am Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
Quote: |
....and the trigger on LQ1 happens at 2:15. " |
How are you determining this time? Is this the time you see the message leave LQ1 or is this the time that your Perl script is started or is this perhaps the time that the Perl script first logs the event, i.e. "I'm awake"?
Quote: |
I also write a log for my script with a time stamp and so i see that is is put about 15 minutes after arrival... so the triggering is not working correctly |
Just noticed this statement. How do you know it's not the script that's taking the 15 minutes? Results from previous executions of the Perl script may not accurately reflect the '2:00' run. Do you write a log event with a timestamp when the script 'gets' the message from LQ1? Is the data consistent?
Last edited by JT on Sat Mar 05, 2005 9:05 am; edited 1 time in total |
|
Back to top |
|
 |
|