2219 (08AB) (RC2219): MQRC_CALL_IN_PROGRESS
Explanation
The application issued an MQI call whilst another MQI call was already being processed for that connection. Only one call per application connection can be processed at a time.
Concurrent calls can arise when an application uses multiple threads, or when an exit is invoked as part of the processing of an MQI call. For example, a data-conversion exit invoked as part of the processing of the MQGET call may try to issue an MQI call.- On z/OS, concurrent calls can arise only with batch or IMS applications; an example is when a subtask ends while an MQI call is in progress (for example, an MQGET that is waiting), and there is an end-of-task exit routine that issues another MQI call.
- On Windows, concurrent calls can also arise if an MQI call is issued in response to a user message while another MQI call is in progress.
- If the application is using multiple threads with shared handles, MQRC_CALL_IN_PROGRESS occurs when the handle specified on the call is already in use by another thread and MQCNO_HANDLE_SHARE_NO_BLOCK was specified on the MQCONNX call.
Completion code
MQCC_FAILED
Programmer response
Ensure that an MQI call cannot be issued while another one is active. Do not issue MQI calls from within a data-conversion exit.
On z/OS, if we want to provide a subtask to allow an application that is waiting for a message to arrive to be canceled, wait for the message by using MQGET with MQGMO_SET_SIGNAL, rather than MQGMO_WAIT.
Parent topic: API reason codes