Signal1 (MQLONG)
This is an input field that is
used only in conjunction with the MQGMO_SET_SIGNAL option; it identifies a
signal that is to be delivered when a message is available.
Note:
The data type and usage of this field are determined by the
environment; for this reason, applications that you want to port between different
environments must not use signals.
- On z/OS, this field must contain the address of an Event Control Block
(ECB). The ECB must be cleared by the application before the MQGET call is issued. The storage containing the ECB must not be freed
until the queue is closed. The ECB is posted by the queue manager with one
of the signal completion codes described below. These completion codes are
set in bits 2 through 31 of the ECB, the area defined in the z/OS mapping
macro IHAECB as being for a user completion code.
- In all other environments, this is a reserved field; its value is not
significant.
The signal completion codes are:
- MQEC_MSG_ARRIVED
- A suitable message has arrived on the queue. This message has not been
reserved for the caller; a second MQGET request must
be issued, but another application might retrieve the message before the second
request is made.
- MQEC_WAIT_INTERVAL_EXPIRED
- The specified WaitInterval has expired without a
suitable message arriving.
- MQEC_WAIT_CANCELED
- The wait was canceled for an indeterminate reason (such as the queue
manager terminating or the queue being disabled). Reissue the request if you
want further diagnosis.
- MQEC_Q_MGR_QUIESCING
- The wait was canceled because the queue manager has entered the quiescing
state (MQGMO_FAIL_IF_QUIESCING was specified on the MQGET call).
- MQEC_CONNECTION_QUIESCING
- The wait was canceled because the connection has entered the quiescing
state (MQGMO_FAIL_IF_QUIESCING was specified on the MQGET call).
The initial value of this field is determined by the environment:
- On z/OS, the initial value is the null pointer.
- In all other environments, the initial value is 0.