Coding in pTAL
Note the information in the following section when coding IBM® MQ programs in pTAL.
HP Integrity NonStop Server
Defining and initializing IBM MQ structures
^DEF
. For example, the following pTAL declarations would be coded to create a IBM MQ Message Descriptor (MQMD) structure and a IBM MQ Put Message Options (MQPMO) structure.
STRUCT MYMD(MQMD^DEF); ! Declare an MQMD structure
STRUCT MYPMO(MQPMO^DEF); ! Declare an MQPMO structure
^DEFAULT
to initialize IBM MQ structures with default values. The following pTAL statements are coded to assign default values to the declared MQMD and the MQPMO structures:
MQMD^DEFAULT(MYMD); ! Assign default values to an MQMD structure
MQPMO^DEFAULT(MYPMO); ! Assign default values to an MQPMO structure
You can declare and initialize other IBM MQ structures by using similar code.
pTAL and the CRE
pTAL programs cannot initialize the Common Runtime Environment and therefore they must be used with a C-language or COBOL main routine.
The pTAL samples that are provided with IBM MQ use a C-language mainline routine that is called AMQSPTM0.C
Parameters with MQCHAR data type
The MQGET, MQPUT, and MQPUT1 procedures each have a Buffer parameter that has an MQCHAR .EXT
data type. This parameter is used to send and receive the application's message data.
Parameters of this sort are shown in the pTAL samples as arrays of string. You can declare the parameters in this way, but it is typically more convenient to declare them as the structure that describes the layout of the data in the message. The procedure parameter is declared as an MQCHAR .EXT
, but the address of any data can be specified as the parameter on the procedure invocation.
Manipulating character strings
When the queue manager returns character data to the application, the queue manager always pads the character data with blanks to the defined length of the field. The queue manager does not return null-terminated strings, but you can use them in your input.