MQOD

Manipulates object descriptor parameters to be used on a subsequent MQOPEN or MQPUT1 call.

Syntax

CALL MQOD(hod, action, rc ,parms ,value1, value2, ...>);

Required Arguments

hod
Numeric, input or output
On input, it specifies a Base SAS internal object descriptor handle. The handle should be supplied when you are setting or querying a value. The handle is generated as output when action is to generate default object descriptor parameters.
action
Character, input
Specifies the desired action of this routine. The following action values are valid:
GEN
Generate a handle representing default object descriptor parameters as defined by WebSphere MQ.
SET
After an object descriptor handle has been generated, you can continue to set values as necessary.
INQ
After an object descriptor handle has been generated, you can query its values.
rc
Numeric, output
Provides the Base SAS return code from this function. If an error occurs, then the return code is nonzero. You can use the Base SAS function SYSMSG() to obtain a textual description of the return code.
parms
Character, input
Specifies an optional string of object descriptor parameters that you want to set for subsequent MQOPEN or MQPUT1 calls. Each parameter must be separated by a comma and must have a value associated with it in the function's parameter list.
For a list of the parameters that you can specify, see the documentation for the MQOD structure in the WebSphere MQ Application Programming Reference at www.ibm.com.
value
Numeric or character, input or output
Provides a value for an object descriptor parameter specified in the parms string. You must provide a value parameter for each object descriptor parameter specified in the parms string and the data type must be of the proper type. Variables used to store character values being returned in an inquiry (INQ action) should be initialized appropriately to guarantee that truncation of a returned value does not occur.

Example

This example generates an object descriptor to OPEN a temporary dynamic queue that begins with the name Base SAS and is unique within the system. The example then queries the name of the temporary dynamic queue that was created after a successful OPEN.
length qname $ 48;
hod=0;
action="GEN";
rc=0;
parms="OBJECTNAME,DYNAMICQNAME"
model="SAMPLE.TEMP.MODEL";
qname="SAS*";
CALL MQOD(hod, action, rc, parms, model, qname);
action="INQ";
parms="OBJECTNAME";
CALL MQOD(hod, action, rc, parms, qname);
put 'dynamic queue name = '
qname;