Opening an existing queue

This example demonstrates how to use the MQOPEN call to open a queue that has already been defined. This extract is taken from the Browse sample application (program CSQ4BCA1) supplied with WebSphere MQ for z/OS. For the names and locations of the sample applications on other platforms, see Sample programs (all platforms except z/OS).

#include <cmqc.h>

  ·
  ·
  ·
static char Parm1[MQ_Q_MGR_NAME_LENGTH];
  ·
  ·
  ·
int main(int argc, char *argv[] ) { /* /* Variables for MQ calls */ /* MQHCONN Hconn ; /* Connection handle */ MQLONG CompCode; /* Completion code */ MQLONG Reason; /* Qualifying reason */ MQOD ObjDesc = { MQOD_DEFAULT }; /* Object descriptor */ MQLONG OpenOptions; /* Options that control */ /* the MQOPEN call */ MQHOBJ Hobj; /* Object handle */
  ·
  ·
  ·
/* Copy the queue name, passed in the parm field, */ /* to Parm2 strncpy(Parm2,argv[2], */ /* MQ_Q_NAME_LENGTH); */
  ·
  ·
  ·
/* */ /* Initialize the object descriptor (MQOD) control */ /* block. (The initialization default sets StrucId, */ /* Version, ObjectType, ObjectQMgrName, */ /* DynamicQName, and AlternateUserid fields) */ /* */ strncpy(ObjDesc.ObjectName,Parm2,MQ_Q_NAME_LENGTH);
  ·
  ·
  ·
/* Initialize the other fields required for the open */ /* call (Hobj is set by the MQCONN call). */ /* */ OpenOptions = MQOO_BROWSE;
  ·
  ·
  ·
/* */ /* Open the queue. */ /* Test the output of the open call. If the call */ /* fails, print an error message showing the */ /* completion code and reason code, then bypass */ /* processing, disconnect and leave the program. */ /* */ MQOPEN(Hconn, &ObjDesc, OpenOptions, &Hobj, &CompCode, &Reason);
   if ((CompCode != MQCC_OK) || (Reason != MQRC_NONE))
      {
      sprintf(pBuff, MESSAGE_4_E,
              ERROR_IN_MQOPEN, CompCode, Reason);
      PrintLine(pBuff);
      RetCode = CSQ4_ERROR;
      goto AbnormalExit1;       /* disconnect processing */
      }

  ·
  ·
  ·
} /* end of main */