+

Search Tips | Advanced Search

Design of the Get sample on z/OSĀ®

Learn about the design of the Get sample, and some usage notes to consider.

The flow through the program logic is:
  1. Connect to the queue manager using the MQCONN call. If this call fails, print the completion and reason codes and stop processing. Note: If you are running the sample in a CICSĀ® environment, we do not need to issue an MQCONN call; if we do, it returns DEF_HCONN. We can use the connection handle MQHC_DEF_HCONN for the MQI calls that follow.
  2. Open the queue using the MQOPEN call with the MQOO_INPUT_SHARED and MQOO_BROWSE options. On input to this call, the program uses the connection handle that is returned in step 1. For the object descriptor structure (MQOD), it uses the default values for all fields except the queue name field, which is passed as a parameter to the program. If the MQOPEN call fails, print the completion and reason codes and stop processing.
  3. Create a loop within the program issuing MQGET calls until the required number of messages are retrieved from the queue. If an MQGET call fails, the loop is abandoned early, no further MQGET calls are attempted, and the completion and reason codes are returned. The following options are specified on the MQGET call:

    • MQGMO_NO_WAIT
    • MQGMO_ACCEPT_TRUNCATED_MESSAGE
    • MQGMO_SYNCPOINT or MQGMO_NO_SYNCPOINT
    • MQGMO_BROWSE_FIRST and MQGMO_BROWSE_NEXT
    For a description of these options, see MQGET. For each message, the message number is printed followed by the length of the message and the message data.
  4. Close the queue using the MQCLOSE call with the object handle returned in step 2. If this call fails, print the completion and reason codes.
  5. Disconnect from the queue manager using the MQDISC call with the connection handle returned in step 1. If this call fails, print the completion and reason codes. Note: If you are running the sample in a CICS environment, we do not need to issue an MQDISC call.


Usage notes