How can I determine why my WebSphere MQ (WMQ) Queue Manager is not shutting down ?
While there are certainly defects that have prevented normal queue manager shutdown, often times threads which are still open to the queue manager will prevent shutdown as well.
Closing down open threads to the queue manager will allow shutdown to proceed normally. For distributed platforms technote 1318303 documents some known possibilities.
Beginning at Version 7.1.0 the base code causes queue managers hosted on the z/OS platform to internally execute
DISPLAY CONN(*) TYPE(CONN) ALL WHERE (APPLTYPE NE SYSTEMAL)
when a STOP of the queue manager is performed. This returns to the joblog threads which are NOT from the queue-manager or channel initiator and so those which could prevent shutdown.
In WebSphere MQ 7.0.1, an internal display of SYSTEMAL is performed in the same manner if the fix for PM80031 is applied. At pre-7.0.1 levels an operator can manually execute
DISPLAY CONN(*) TYPE(CONN) ALL WHERE (APPLTYPE NE SYSTEM)
This differs from the SYSTEMAL display since the SYSTEM display only includes queue-manager threads whereas the SYSTEMAL display includes queue-manager and channel initiator threads. Note that use of the 'NE' operator excludes these contents.
PM80031 also describes the documentation changes associated with this DISPLAY command.
Technote 1297570 discusses alternative ways to determine why shutdown may not complete.
WebSphere MQ WMQ