Author |
Message
|
NewMQUser |
Posted: Thu Nov 20, 2003 9:13 am Post subject: MQ Trigger Queues- In CICS |
|
|
Newbie
Joined: 20 Nov 2003 Posts: 3
|
Hello all,
Could someone help me with this query.
I've a MQ queue that triggers a CICS transation. In case the triggered transation doesnt process my message, i would like another instance of the transation to run agaian. Pls let me know the set up for this. Is this done using the service interval property on the queues? Pls let me know.
Thanks for any suggestion or help in this regard ! |
|
Back to top |
|
 |
mrlinux |
Posted: Thu Nov 20, 2003 9:27 am Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
Well couple of questions
1) are you rolling the message back ??
2) what form of triggering are you using FIRST/EVERY/DEPTH ??? _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
NewMQUser |
Posted: Thu Nov 20, 2003 9:29 am Post subject: |
|
|
Newbie
Joined: 20 Nov 2003 Posts: 3
|
Yes. I am roling back the message before the transaction abends. And the trigger is for first message.
Thanks for your effort to help me. |
|
Back to top |
|
 |
mrlinux |
Posted: Thu Nov 20, 2003 5:04 pm Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
Well that will put you into an endless loop, when you roll back it should retrigger and pull the message back off the queue.
You need to take care and move the message to another queue.
We set our trigger to every, and have the cics transaction read all the messages in the queue. This appears to be the most robust, but not
necessarily the most effiecent use of resources. _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
NewMQUser |
Posted: Thu Nov 20, 2003 7:14 pm Post subject: |
|
|
Newbie
Joined: 20 Nov 2003 Posts: 3
|
Thanks Jeff.
But in this scenario, the message hasnot yet been read from the queue. if my transation abends before that wouldnt it initiate another instance of it?
Would i be able to control the time delay before the next instance of the tran is initaited? |
|
Back to top |
|
 |
mrlinux |
Posted: Thu Nov 20, 2003 9:18 pm Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
There is a queue manager setting I think it is called trigger interval and it controls the interval of generating another trigger message, it is by default set very high. If you lower you can get it to generate another trigger message _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
PeterPotkay |
Posted: Fri Nov 21, 2003 7:19 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Don't forget it will take the arrival of another message after the trigger interval has expired before MQ will attempt to trigger again.
And wouldn't you just abend again anyway? _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
pgorak |
Posted: Fri Nov 21, 2003 7:36 am Post subject: |
|
|
 Disciple
Joined: 15 Jul 2002 Posts: 158 Location: Cracow, Poland
|
mrlinux wrote: |
Well that will put you into an endless loop, when you roll back it should retrigger and pull the message back off the queue.
You need to take care and move the message to another queue.
|
The Skipping backout feature seems to be a very smart way of doing this. I've just stumbled across it browsing the documentation. It is supported only on OS/390 (z/OS).
Has anyone used this feature?
Piotr |
|
Back to top |
|
 |
zpat |
Posted: Fri Nov 21, 2003 7:42 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
If it is high volume and real-time, don't trigger - this is wasteful.
Just have a CICS program with an outstanding MQGET with WAIT on the queue, process the messages as they arrive and loop around. When the program is waiting for the next message, the CICS region will get on with other work so it's not wasting resources.
In our case the long running CICS task initiates another CICS program to handle the message data - a bit like a trigger monitor but by running off the real queue it saves all the extra internal MQPUT/GET to the initiation queue and all the problems of retriggering.
Triggering is really best for when messages arrive very intermittently or you want to wait for a large number to build up before processing them. |
|
Back to top |
|
 |
|