Coding MQI apps in PL/I
Useful information when coding for IBM® MQ in PL/I.
Structures
Structures are declared with the BASED attribute, and so do not occupy any storage unless the program declares one or more instances of a structure.
like attribute, for
example: dcl my_mqmd like MQMD; /* one instance */
dcl my_other_mqmd like MQMD; /* another one */
The structure fields are declared with the INITIAL attribute; when the like
attribute is used to declare an instance of a structure, that instance inherits the initial values
defined for that structure. You need to set only those fields where the value required is different
from the initial value.
PL/I is not sensitive to case, and so the names of calls, structure fields, and constants can be coded in lowercase, uppercase, or mixed case.
Named constants
The named constants are declared as macro variables; as a result, named constants that are not referred to by the program do not occupy any storage in the compiled procedure.
However, the compiler option that causes the source to be processed by the macro preprocessor must be specified when the program is compiled.
%dcl MQMD_STRUC_ID char;
%MQMD_STRUC_ID = '''MD ''';
%dcl MQMD_VERSION_1 char;
%MQMD_VERSION_1 = '1';