Have you failed to receive a response from a PCF command?

Considerations if we have issued a command but have not received a response.

If we have issued a command but have not received a response, consider the following checks:

  • Is the command server running? Work with the dspmqcsv command to check the status of the command server.

    • If the response to this command indicates that the command server is not running, use the strmqcsv command to start it.
    • If the response to the command indicates that the SYSTEM.ADMIN.COMMAND.QUEUE is not enabled for MQGET requests, enable the queue for MQGET requests.
  • Has a reply been sent to the dead-letter queue?

    The dead-letter queue header structure contains a reason or feedback code describing the problem. See MQDLH - Dead-letter header and Use the dead-letter (undelivered message) queue for information about the dead-letter queue header structure (MQDLH).

    If the dead-letter queue contains messages, we can use the provided browse sample application (amqsbcg) to browse the messages using the MQGET call. The sample application steps through all the messages on a named queue for a named queue manager, displaying both the message descriptor and the message context fields for all the messages on the named queue.

  • Has a message been sent to the error log?

    See Error log directories for further information.

  • Are the queues enabled for put and get operations?
  • Is the WaitInterval long enough?

    If your MQGET call has timed out, a completion code of MQCC_FAILED and a reason code of MQRC_NO_MSG_AVAILABLE are returned. (See WaitInterval (MQLONG) for information about the WaitInterval field, and completion and reason codes from MQGET.)

  • If you are using your own application program to put commands onto the SYSTEM.ADMIN.COMMAND.QUEUE, do you need to take a sync point?

    Unless we have excluded your request message from sync point, you need to take a sync point before receiving reply messages.

  • Are the MAXDEPTH and MAXMSGL attributes of your queues set sufficiently high?
  • Are you using the CorrelId and MsgId fields correctly?

    Set the values of MsgId and CorrelId in your application to ensure that you receive all messages from the queue.

Try stopping the command server and then restarting it, responding to any error messages that are produced.

If the system still does not respond, the problem could be with either a queue manager or the whole of the IBM MQ system. First, try stopping individual queue managers to isolate a failing queue manager. If this step does not reveal the problem, try stopping and restarting IBM MQ, responding to any messages that are produced in the error log.

If the problem still occurs after restart, contact your IBM Support Center for help.