Mapping RPC Data to the MQ Message Buffer

RPC data is described by Software AG IDL. See Software AG IDL File. The Listener for IBM MQ offers two possibilities to map MQ messages to IDL:


Mapping XML MQ Messages to IDL

IDL is mapped to XML format using the XML Mapping Editor. The outcome of this process is an XML mapping file (Designer file with extension xmm). This resulting XMM file has to be specified by the configuration property entirex.bridge.xmm.

Note:
EntireX configuration parameters (see Listener for XML/SOAP under Writing Advanced Applications with the XML/SOAP Wrapper) inside the XML payload are ignored.

Mapping Text MQ Messages to IDL

MQ messages in text format use an IDL file, which describes the message layout. The IDL file has to be specified by the configuration property entirex.bridge.idl. The program name is taken from the applicationIdData field of the incoming MQ message. If this field is empty and the IDL file has only one program, this program will be called. A custom logic (e.g. using the first n bytes of the MQ message payload) can be implemented in the user exit.

The Listener for IBM MQ uses the predefined mapping of IDL data types to the MQ message buffer. See below. If your programs use arrays of groups, set the property entirex.bridge.marshalling to "Natural" or "COBOL". If your programs do not use arrays of groups, do not set entirex.bridge.marshalling.

Data Type Description Format Note
Anumber Alphanumeric number bytes, encoding the characters.  
AV Alphanumeric variable length Bytes up to the end of the buffer. 1, 4
AVnumber Alphanumeric variable length with maximum length Bytes up to the end of the buffer, maximum length number. 1
Bnumber Binary byte[] 5
BV Binary variable length   5
BVnumber Binary variable length with maximum length   5
Knumber Kanji Same as data type A.  
KV Kanji variable length Same as data type AV. 1, 4
KVnumber Kanji variable length with maximum length Same as data type AVnumber. 1
F4 Floating point (small)   5
F8 Floating point (large)   5
I1 Integer (small) sign (+, -) and 3 bytes (digits).  
I2 Integer (medium) sign (+, -) and 5 bytes (digits).  
I4 Integer (large) sign (+, -) and 10 bytes (digits).  
Nnumber1[.number2] Unpacked decimal sign (+, -), number1 bytes (digits) [number2] bytes (digits), no decimal point.  
NUnumber1[.number2] Unpacked decimal unsigned   5
Pnumber1[.number2] Packed decimal sign (+, -), number1 bytes (digits) [number2] bytes (digits), no decimal point.  
PUnumber1[.number2] Packed decimal unsigned   5
L Logical 1 byte: X for true, all other false.  
D Date YYYYMMDD. 2
T Time YYYYMMDDhhmmssS. 3
Unumber Unicode   5
UV Unicode variable length   5
UVnumber Unicode variable length with maximum length   5

See also the hints and restrictions valid for all languages under IDL Data Types in the IDL Editor documentation.

Notes:

  1. Only as last value.
  2. YYYY year, MM month, DD day.
  3. YYYY year, MM month, DD day, hh hour, mm minute, ss second, S tenth of a second.
  4. Not possible when using COBOL.
  5. Data type not supported.