Format of synchronous callout messages

Synchronous callout messages contain a segment for the correlator token. The correlator token is used to correlate responses with the IMS application programs that issue the callout requests. User-supplied client application programs must account for this token when reading callout request messages and return it with callout response messages.

The presence of the correlation token identifies the message to the IMS Connect client as a synchronous callout message. IMS generates the correlation token and includes it in the outgoing callout request automatically. The IMS Connect client must return the correlation token in the response that it sends back to IMS.

The application data segment in synchronous callout messages can be larger than 32 K and potentially many megabytes in length. IMS Connect includes the length of the application data segment at the beginning of the segment in a four-byte length field, LLLL. The length specified in the LLLL field includes the length of the LLLL field itself. The IMS Connect client must be configured to read all four bytes of the length field.

When the IMS Connect client returns the response to the callout request, the client must include the length of the application data segment in the four-byte length field at the beginning of the segment by using the same LLLL format.

Attention: Be aware that if multiple ICAL calls are issued concurrently, larger message sizes can consume larger amounts of extended private storage.

The following examples illustrate the format of synchronous callout requests and synchronous callout responses. In the examples, the segments enclosed in braces, { and }, are optional.

The structure of the correlation token itself cannot be modified; however, its structure is defined in the HWSIMSCB and HWSOMPFX macros.

The structure of a synchronous callout request message sent by IMS Connect to a client application conforms to the following format: Start of change
LLLL | LLZZ COR | {LLZZ RMM} | {Control data} | LLLL data | LLZZ CSM
End of change
The structure of a synchronous callout response returned by the client application must conform to the following format:
LLLL | LLZZ IRM | LLLL data | 00040000
For comparison, a message that is not a synchronous callout request and that does not support the 4-byte format of length field the application data segment looks like this:
LLLL | {RMM} | LLZZ data | {LLZZ data} | CSM