12 Jan 04 9:34
I've not worked with AS400, but I have worked a lot on 390/zOS mainframe, so I'm not familiar with the monitoring tools avavilable to you...but here's something we found when we had the same the same problem...
When the first message hits, the trigger mon fires. If your process reads the message AND DELETES IT, and is running to completion PRIOR to the arrival of the next message, then the next message is the FIRST and will fire the trigger monitor.
Also, MQ does a wierd thing to compensate for network outages and incorrect applications names in the process def, etc. that it thinks might cause queues not to be opened and read. It puts ANOTHER message on the trigger queue after the time set in TriggerInterval. If that time is set too low, it is VERY possible that FIRST will act just like EVERY, because even though you process the real FIRST message properly, the time set in Trigger Interval has passed so another message is created and fires the process again.
You probably need to get whatever AS400 system monitoring tools are available and watch the entire message flow from arrival to process completion to check the throughput times.
Make sure you are not putting a message back on the trigger queue. (You'd be surprised!) Also, if your process was designed to only process one message, that you make sure ti modify the process to loop through the queue to process any messages that may have arrived AFTER the process was started, or you'll be leaving unread messages on the queue.
Finally, I'd suggest that if you don't have a hard copy of the IBM books, go to the IBM website, download BOOKMANAGER and the soft copy of the IBM MQ Series reference books. They're free!
Hope this helps.