What to do if message queuing stops

When any of the following conditions occur, message queuing stops, and the system posts an ECB.
  • No more storage remains in the message data space. The size of the storage area was specified in the STORAGE field of MCSOP.
  • The maximum number of messages was reached in the message data space. The maximum number was specified on the QLIMIT parameter of the MCSOPER macro.
The ALERTECB parameter on the MCSOPER macro specifies the ECB to be posted when message queuing stops.

When MCSOPER posts the ECB, check the MCS console status area, MCSCSA to determine why queuing has stopped. If the message data space is full, the MCSCMLIM field contains a 1. If the maximum number of messages has been reached, the MCSCDLIM field contains a 1. In either case, to start message queuing again, retrieve messages from the MDB by issuing the MCSOPMSG macro.

Issue the MCSOPMSG macro with the REQUEST=GETMSG parameter a sufficient number of times to retrieve enough messages to meet the QRESUME percentage specified on the MCSOPER macro. For example, if on MCSOPER you defined QLIMIT as 1000 messages, and QRESUME at 50%, queuing stops when the message storage area holds 1000 messages and the system is queuing one more message into the area. You can restart queuing in one of two ways:
  • Issue MCSOPMSG REQUEST=GETMSG 500 times so that the area holds 500 messages, or 50% of 1000. Queuing automatically resumes when the area holds 50% of the QLIMIT.
  • Issue MCSOPMSG REQUEST=GETMSG any number of times to reduce the number of queued messages, then issue MCSOPMSG REQUEST=RESUME to restart queuing. Queuing will continue until you again hit the QLIMIT.

The system does not resume queuing if queuing stopped because the message data space reached the storage limit as defined for the storage attribute in MCSOP, a security product's user segment, or the system default.

Occasionally, the ALERTECB can be posted for one of the following conditions as well:
  • An internal queuing error has occurred and message queuing has stopped. The MCSCSA internal error field will contain a 1. Issue MCSOPMSG REQUEST=RESUME to restart queuing.

By issuing MCSOPMSG REQUEST=RESUME, you can resume queuing to the message data space after any abend that suspends system message queuing, or after the failure of recovery routines invoked. Some or all messages currently queued might be lost. REQUEST=RESUME enables you to resume queuing without having to retrieve enough messages to reach the QRESUME percentage.