C example: Setting the attributes of a queue
This example demonstrates how to use the MQSET call to change the attributes of a queue.
This extract is taken from the Queue Attributes sample application.
For IBM® MQ for z/OS® this is program CSQ4CCC1.
For the names and locations of the sample applications, see the following topics:
#include <cmqc.h> /* MQ API header file */
⋮
#define NUMBEROFSELECTORS 2
const MQHCONN Hconn = MQHC_DEF_HCONN;
static void InhibitGetAndPut(char *Message,
PMQHOBJ pHobj,
char *Object)
{
/* */
/* Declare local variables */
/* */
MQLONG SelectorCount = NUMBEROFSELECTORS;
/* Number of selectors */
MQLONG IntAttrCount = NUMBEROFSELECTORS;
/* Number of int attrs */
MQLONG CharAttrLength = 0;
/* Length of char attribute buffer */
MQCHAR *CharAttrs ;
/* Character attribute buffer */
MQLONG SelectorsTable[NUMBEROFSELECTORS];
/* attribute selectors */
MQLONG IntAttrsTable[NUMBEROFSELECTORS];
/* integer attributes */
MQLONG CompCode; /* Completion code */
MQLONG Reason; /* Qualifying reason */
⋮
/* */
/* Open the queue. If successful, do the */
/* inquire call. */
/* */
⋮
/* */
/* Initialize the variables for the set call: */
/* - Set SelectorsTable to the attributes to be */
/* set */
/* - Set IntAttrsTable to the required status */
/* - All other variables are already set */
/* */
SelectorsTable[0] = MQIA_INHIBIT_GET;
SelectorsTable[1] = MQIA_INHIBIT_PUT;
IntAttrsTable[0] = MQQA_GET_INHIBITED;
IntAttrsTable[1] = MQQA_PUT_INHIBITED;
⋮
/* */
/* Issue the set call. */
/* Test the output of the set call. If the */
/* call fails, display an error message */
/* showing the completion code and reason */
/* code; otherwise move INHIBITED to the */
/* relevant screen map fields */
/* */
MQSET(Hconn,
*pHobj,
SelectorCount,
SelectorsTable,
IntAttrCount,
IntAttrsTable,
CharAttrLength,
CharAttrs,
&CompCode,
&Reason);
if (CompCode != MQCC_OK)
{
sprintf(Message, MESSAGE_4_E,
ERROR_IN_MQSET, CompCode, Reason);
SetMsg(Message);
}
else
{
/* Process the changes */
} /* end if CompCode */
![[UNIX, Linux, Windows, IBM i]](../common/../develop/ngmulti.gif)
![[z/OS]](../common/../develop/ngzos.gif)