Author |
Message
|
Henry |
Posted: Thu Mar 11, 2004 10:57 pm Post subject: MQ trigger |
|
|
Acolyte
Joined: 08 Oct 2003 Posts: 73
|
I 've got a problem on MQ trigger under Solaris 8 environment.
Currently, I 've got a trigger on a queue which is using triggered by first. At the first beginnning, it is properly. However, somehow, it was getting stuck with msgs in the queue because the IPPROCS is 1. then all the msgs in the queue are accumulated. I have tried to set the trigger queue to be triggered by EVERY. Then the problem is temporary solved. After that, I have changed it back to be triggered by FIRST. The problem is also come back again.
How can I solve the problem? |
|
Back to top |
|
 |
kman |
Posted: Thu Mar 11, 2004 11:34 pm Post subject: |
|
|
Partisan
Joined: 21 Jan 2003 Posts: 309 Location: Kuala Lumpur, Malaysia
|
Hi, have you checked the kernel parameters requirement for Solaris 8. There is also a section in the Readme file on the kernel parameters value that was wrongly stated in the Quick Beginnings.
The Readme should be with your installation. The Quick Beginnings can be found following the 'documentation' link above. |
|
Back to top |
|
 |
Henry |
Posted: Fri Mar 12, 2004 1:16 am Post subject: |
|
|
Acolyte
Joined: 08 Oct 2003 Posts: 73
|
is it under the directory READMES? is it the memo.pdf file? Can you pls tell me where I can find that file? |
|
Back to top |
|
 |
PeterPotkay |
Posted: Fri Mar 12, 2004 11:19 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Quote: |
it was getting stuck with msgs in the queue because the IPPROCS is 1
|
This means something has the queue open. If the queue is open, you wont get any more triggering. Close the queue, IPROCS go to 0, and triggering works again. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
Leafar |
Posted: Fri Mar 12, 2004 11:28 am Post subject: |
|
|
 Acolyte
Joined: 03 Apr 2003 Posts: 74 Location: Buenos Aires
|
|
Back to top |
|
 |
kman |
Posted: Sun Mar 14, 2004 7:13 pm Post subject: |
|
|
Partisan
Joined: 21 Jan 2003 Posts: 309 Location: Kuala Lumpur, Malaysia
|
Henry,
in retrospect, I think you have a problem with your triggered program. Did your program closes the queue and disconnect from the queue manager after you have processed the message?
It appears that when you set it to trigger FIRST, the first arrival of the message causes your application to be triggered. Once this program of yours has processed the message, either it should continue waiting on the queue in a loop for next message arrival, or it should close the queue and disconnect. If you haven't done the queue close, you are always hanging on the queue. That should explain the IPPROCS.
If you are not processing next messages (all of them), then the queue depth will not go down to 0, which will not set thr trigger back on.
It works when you set it EVERY because on every arrival of new messages, the application is triggered. Irrespective whether you closes the queue or not.
My suggestion.
1. check if your application is doing a wait on the queue. You may or may not do this - depending on your design.
2. check if your application closes and disconnect after processing the message. You should do this, whether you are waiting on the queue or not.
btw, the readme should be under /var/mqm. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Sun Mar 14, 2004 8:16 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Quote: |
If you are not processing next messages (all of them), then the queue depth will not go down to 0, which will not set thr trigger back on.
|
Triggering stays on regardless of the # of messages on the queue if the queue is triggered on first or on every. Triggering only gets turned off when the trigger executes for trigger on depth.
If the queue is triggered on first, the QM will generate another trigger message as soon as the only app holding the queue open issues an MQCLOSE and the queue depth is > 0. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
kman |
Posted: Sun Mar 14, 2004 8:34 pm Post subject: |
|
|
Partisan
Joined: 21 Jan 2003 Posts: 309 Location: Kuala Lumpur, Malaysia
|
maybe I should rephrase that statement.
Well.. for a trigger FIRST.. the trigger message will only be generated for the First message on the queue. The first message is when depth turns from 0 to 1. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Mon Mar 15, 2004 5:25 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Quote: |
Well.. for a trigger FIRST.. the trigger message will only be generated for the First message on the queue. The first message is when depth turns from 0 to 1.
|
Until the Trigger Interval passes. At that point, when another message lands on the Trigger OnFirst queue, even if the depth does not go from 0 to 1, you will still get a trigger message. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
|