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 */
Parent topic:
C language examples
fg18840_