As some of you may have read in T.Rob Wyatt’s blog, I’ve been doing some testing with MQ Auditor enabled on a queue manager to see what is going on under the covers with MQ and sending my results to T.Rob. I was just going to send a simple note to T.Rob saying he should update his blog to say ‘Escaped PCF’ messages rather than PCF messages.
From the MQ Knowledge Center:
Escape PCFs are PCF commands that contain MQSC commands within the message text. You can use PCFs to send commands to a remote queue manager.
Of course, ‘Escaped PCF’ vs ‘regular PCF’ messages got me thinking. Does this issue happen when any MQ tool that sends regular PCF messages to the Command Server? I did some quick tests with MQ Explorer, MQ Visual Edit & MO71 and everything worked. No lost messages. So, I used MQ Auditor to see what model queue each were using:
- MQ Visual Edit doesn’t set a model queue but the underlying IBM MQ Java PCF classes use: SYSTEM.DEFAULT.MODEL.QUEUE
- MQ Explorer uses: SYSTEM.MQEXPLORER.REPLY.MODEL
- MO71 uses: SYSTEM.DEFAULT.MODEL.QUEUE
- runmqsc client mode uses: SYSTEM.MQSC.REPLY.QUEUE
As T.Rob pointed out in his blog, here are the important model queues used by various tools and there default MAXDEPTH values.
Model Queue Name | MAXDEPTH |
SYSTEM.DEFAULT.MODEL.QUEUE | 5000 | SYSTEM.MQEXPLORER.REPLY.MODEL | 5000 | SYSTEM.MQSC.REPLY.QUEUE | 3000 |
Just for the fun of it, I change MAXDEPTH to 3000 for SYSTEM.DEFAULT.MODEL.QUEUE. I did a quick test with MQ Visual Edit and MO71. The consequences were: the MQ Java PCF classes actually threw a 2033 exception whereas MO71 waited forever and returned quiescing when I shutdown the queue manager.
In each case, the Command Server did write a message to the DLQ:
The question becomes IF you had MQ monitoring in place and it alerted you to the above mentioned DLQ message:
- Would you know that the Command Server failed to put a message to a queue?
- Would you be able to easily identify that some MQ tool (i.e. MQ Explorer, MQ Visual Edit, MO71, etc.) failed to receive all of the PCF response messages?
- Would you know what to do to get rid of the issue?
So, what does it all mean? You should be fine so long as (1) your total MQ objects is less than 3000 or 5000, depending on the tool and (2) your MQAdmin did not change the model queue’s default MAXDEPTH value.
Personally, I think all model queues should have a default MAXDEPTH value of 5000. Secondly, as T.Rob pointed out in his blog, you may need to bump the MAXDEPTH value to a higher number if you have more than 3000 and/or 5000 MQ objects.
Regards,
Roger Lacroix
Capitalware Inc.
2 Responses to More Information on Command Server’s Issues