Page 1 of 3
IBM MQ error AMQ5008S, determining the signal sent that caused
Probe Id ZX005020
https://www.ibm.com/support/pages/node/392653
Date last updated: 19-May-2024
John C. Zimmer, Angel Rivera
IBM MQ Support
https://www.ibm.com/products/mq/support
Find all the support you need for IBM MQ
+++ Question +++
You want to know if a strong signal such as SIGKILL (by means of "kill -9") was used to
terminate a queue manager.
You notice that a queue manager has ended. An entry similar to the one below was added
to the error log of the queue manager.
05/19/2024 11:36:43 AM - Process(39742.10) User(mqm) Program(amqzxma0)
Host(camembert1.fyre.ibm.com) Installation(Installation1)
VRMF(9.3.0.17) QMgr(QMTEST)
Time(2024-05-19T18:36:43.505Z)
ArithInsert1(39759)
CommentInsert1(zllCRIT)
AMQ5008S: An essential IBM MQ process 39759 (zllCRIT) cannot be found and is
assumed to be terminated.
EXPLANATION:
1) A user has inadvertently terminated the process. 2) The system is low on
resources. Some operating systems terminate processes to free resources. If
your system is low on resources, it is possible it has terminated the process
so that a new process can be created.
ACTION:
IBM MQ will stop all MQ processes. Inform your systems administrator. When
the problem is rectified IBM MQ can be restarted.
In addition, a new FDC was generated and includes the following:
| Probe Id :- ZX005020
| Component :- zxcProcessChildren
| Major Errorcode :- zrcX_PROCESS_MISSING
| Minor Errorcode :- OK
| Probe Type :- MSGAMQ5008
| Probe Severity :- 1
| Probe Description :- AMQ5008S: An essential IBM MQ process 39759 (zllCRIT) |
| cannot be found and is assumed to be terminated.
| Arith1 :- 39759 (0x9b4f)
| Comment1 :- zllCRIT
Page 2 of 3
+++ Background +++
The signal name for the command "kill -9" is SIGKILL, or signal 9. SIGKILL is a special signal
that is used in Linux and AIX, to immediately terminate a process.
The operating system (kernel) handles SIGKILL entirely, and the process cannot ignore or
handle it.
The MQ command "endmqm" does not use these strong signals to end the queue manager.
Thus, if a strong signal is used to terminate the queue manager, this means that it was
either the Operating System or user "root" or an MQ Administrator using the "kill" command.
+++ Answer +++
When an essential MQ process that is supposed to be still running, is no longer running, then
it is the correct reaction for the queue manager to terminate.
The signal that was sent to terminate the MQ process can be found in the generated FDC,
but it is not easy to find in the FDC, and the purpose of this article is to describe the steps
on how to find the information in the FDC.
The field "Arith1" in FDC includes both the Decimal PID (39759 in this example) and the
Hexadecimal PID (0x9b4f) of the MQ processes that was terminated by the signal:
| Arith1 :- 39759 (0x9b4f)
This PID is found in the body of the FDC and it will include the actual signal that was used
to terminate the process.
The "Process Control Block" or "EC anchor block" of the FDC includes an array of the
ProcessIDs (PID's) and exit codes of the last 10 child processes.
The top portion of this Block identifies the PID of the child processes that received a strong
signal and was terminated. See the lines that are highlighted in red.
Process Control Block (xihPROCESS)
{
xihEye: XIHP
xihLength: 28864
xihPID: 39742
LogIndex: 1 (next 1)
DeadPid[0]: 39759 (0x00009B4F)
DeadStatus[0]: 0x00000009
WIFSIGNALED
WTERMSIG: 9
DeadTime[0]: 2024-05-19 11:36:43.499490
Page 3 of 3
For this example, the DeadPid field identifies the decimal 39759:
DeadPid[0]: 39759 (0x00009B4F)
and indicates that the signal that was used was 9 (SIGKILL)
DeadStatus[0]: 0x00000009
WIFSIGNALED
WTERMSIG: 9
In addition, further down in that block, there is a section "ExecIndex" that has the array of
the last 10 child processes.
For this example, entry for the PID 39759 is index "2" and it is highlighted in red. The name
of the MQ processes that was terminated by the signal is "amqzmuc0"
ExecIndex: 0 (next 0)
{
{
ExecPid[0]: 39752 (0x00009B48)
ExecType[0]: amqzfuma (17)
ExecFlags[0]: 0x00000002
ExecTime[0]: 2024-05-19 11:34:21.073972
ExecRc[0]: 0
ExecPath[0]: /opt/mqm/bin/amqzfuma
ExecArgs[0]: -m QMTEST
ExitStatus[0]: 0xDEADBEEF
ExecPid[1]: 39756 (0x00009B4C)
ExecType[1]: amqzmgr0 (21)
ExecFlags[1]: 0x00000002
ExecTime[1]: 2024-05-19 11:34:21.092877
ExecRc[1]: 0
ExecPath[1]: /opt/mqm/bin/amqzmgr0
ExecArgs[1]: -m QMTEST
ExitStatus[1]: 0xDEADBEEF
ExecPid[2]: 39759 (0x00009B4F)
ExecType[2]: amqzmuc0 (22)
ExecFlags[2]: 0x00000002
ExecTime[2]: 2024-05-19 11:34:21.124957
ExecRc[2]: 0
ExecPath[2]: /opt/mqm/bin/amqzmuc0
ExecArgs[2]: -m QMTEST
ExitStatus[2]: 0x00000009
+++ end +++