endmqm lets you stop a running queue manager. But there are rare occasions where it wont work and you need to kill the queue manager processes yourself. As a queue manager is made up of a number of processes, there is a list which gives the recommended order to stop the processes in.

Considering how rare a situation this is, it never ceases to surprise me how many WMQ Sys Admins have some sort of kill script in their arsenal, ready to nuke an errant queue manager.

But as people do, and as often these scripts have been around for a long while, I thought it was worth highlighting that the order in which you stop the processes was changed for WMQ v6, point out where the new order can be found, and briefly talk about some interesting points behind the order.

The order to end processes in WebSphere MQ v6 can be found in an appendix of the WebSphere MQ System Administration Guide, for both Windows and UNIX systems.

The first process to end is amqzmuc0 – the critical process manager. This contains the logger, and ending it prevents any further transactional work.

The next process to end is amqzxma0 – the execution controller. The execution controller identifies when other processes die. Stopping this prevents it from producing a pile of “Process X has died” FFST error reports as they are ended. It also prevents any new connections being made to the queue manager.

At the other end of the list is amqpcsea – the command server. By this point in the list, these are processes which do not access any critical queue manager resources, so can be safely left until last.