Format of user portion of IRM for HWSSMPL0, HWSSMPL1, and user-written message exit routines
Following the 4-byte length field and the 28-byte fixed portion of the IMS request message (IRM) header in IMS Connect client input messages, user-written client applications supported by HWSSMPL0, HWSSMPL1, or user-written message exits can include a user-defined section in the IRM.
- ACK (A)
- CANCEL TIMER (C)
- DEALLOCATE (D)
- NAK (N)
- RESUME TPIPE (R)
- SENDONLY (S)
- SENDONLYA (K)
- SNDONLYE (J)
- Send-receive (X'40')
- Synchronous callout response with ACK (L)
- Synchronous callout response (M)
The data that follows the user portion of the IRM must be in the format of LLZZDATA, where LL is the total length of message segment (including the LL field), ZZ is binary zeros, and DATA is the IMS transaction code followed by the transaction data.
The following table shows the format of the user portion of the IRM used by HWSSMPL0, HWSSMPL1, and other user-written user message exits.
This topic contains Product-sensitive Programming Interface information.
Field | Length | Offsets | Meaning | |
---|---|---|---|---|
Dec | Hex | |||
llll | 4 bytes | 0 | X'00' | Length of entire message including the IRM, application data, end of message indicator, and this length field |
Fixed-format IRM | 28 bytes | 4 | X'04' | The common, fixed portion of the IRM prefix. |
IRM_MAP | 0 bytes | 32 | X'20' | Position of the XID map when it is present. |
IRM_F1 | 1 byte | 32 | X'20' | The purpose of this field differs
depending on its value.
If this value is not supplied by the client, the user exit must use a default value. The MFS MOD name flag is returned to IMS Connect from the exit in the EXIT PARMLIST field, EXPREA_UFLAG1. The Unicode encoding schema (UTF8, UCS2, UTF16) is identified in the IRM_ES field of the fixed portion of the IRM. |
IRM_F2 | 1 byte | 33 | X'21' | Specifies the commit mode.
If this value is not supplied from the client, the user exit must use a default value. The commit mode flag is returned to IMS Connect from the exit in the OTMA header field, OMHDRSYN. |
IRM_F3 | 1 byte | 34 | X'22' | Depending on the value, this field specifies the sync
level, the purge or reroute option for CM0 output, or the serial delivery option for send-only
input.
For CM0, the sync level must be set to confirm. If the synch level is not supplied from the client, the user exit must use a default value. The sync level flag is returned to IMS Connect from the exit in the OTMA header field, OMHDRSLV. The purge not deliverable flag is returned to IMS Connect from the user message exit in the OTMA header field, OMHDRCFL, with the setting of OMHDRPND X'10'. If the reroute flag is set, the IRM_REROUT_NM field is optional. You cannot specify the purge not deliverable function and the reroute function at the same time. If both functions are specified, the output messages are not purged or rerouted and OTMA issues message DFS2407W. |
IRM_F4 | 1 byte | 35 | X'23' |
The IRM_F4 flag identifies the type of message being sent by the client. Message types are specified by an ASCII or EBCDIC character value. The value is sent to IMS Connect , passed to the user exit, the exit builds the appropriate OTMA structure and returns it to IMS Connect to be forwarded to IMS. The valid values and the message types that they indicate are as follows:
|
IRM_F4 (cont'd) | 1 byte | 35 | X'23' |
|
IRM_TRNCOD | 8 bytes | 36 | X'24' | Character string. It specifies the IMS transaction code. |
IRM_IMSDESTID | 8 bytes | 44 | X'2C' | Character string. It specifies the data store name (IMS destination ID). This field must be specified by the client. The data store name is returned to IMS Connect from the exit in the OTMA header field, OMUSR_DESTID. |
IRM_LTERM | 8 bytes | 52 | X'34' | Character string. It specifies the IMS logical terminal (LTERM) override name. This field can be set to a valid
name or to blanks. The LTERM override name is returned to IMS Connect from the exit in the OTMA header field, OMHDRLM. For IMS host applications, the value for this field is set by the user message exit, which either moves this value to the OTMA field OMHDRLTM or sets OMHDRLTM with a predetermined value. If you have specified an LTERM override value, OTMA places that value in the IOPCB LTERM field. If you do not specify an LTERM override value, OTMA instead places the IMS Connect-defined tpipe name in the IOPCB LTERM field. The tpipe name is set to the CLIENT ID if the commit mode is zero; it is set to the PORT ID if the commit mode is one. If you use the LTERM value in the IOPCB to make logic decisions, be aware of the naming conventions of the IOPCB LTERM name. If you need to use the LTERM override name for calling IBM Workload Manager for input transactions, you must specify WLMLTRM=YES in the DFSOTMA descriptor. |
IRM_RACF_USERID | 8 bytes | 60 | X'3C' | Character string. It specifies the RACF® user ID. The client must provide it if RACF is to be used. The RACF user ID name is returned to IMS Connect from the exit in the OTMA header field, OMSECUID. |
IRM_RACF_GRNAME | 8 bytes | 68 | X'44' | Character string. It specifies the RACF group name. The RACF group name is returned to IMS Connect from the exit in the OTMA header field, OMSECGRP. To preserve the expected offset of this field, when you specify IRM_RACF_GRNAME, you must also
specify the following fields with valid values or blanks:
|
IRM_RACF_PW | 8 bytes | 76 | X'4C' | Character string. It specifies the RACF PassTicket or password. The client must provide it if RACF is to be used. The PassTicket or password value is returned to IMS Connect from the user message exit, in the OTMA header field, OMUSR_PASSTICK. To preserve the expected offset of this field, when you specify IRM_RACF_PW, you must also
specify the following fields with valid values or blanks:
The RACF password can contain any of the following special characters. IMS Connect uses EBCDIC page 037 to validate
password characters. The symbols shown are for EBCDIC code page 1047 and 037.
The RACF password can also contain the following national characters:
|
IRM_APPL_NM | 8 bytes | 84 | X'54' | Character string. It specifies the RACF
APPL name, that was defined to RACF on the PTKTDATA
definition. If this field is not included or is blank, the RACF APPL name is taken from the APPL parameter of the DATASTORE configuration statement.
To preserve the expected offset of this field, when you specify IRM_APPL_NM, you must also
specify the following fields with valid values or blanks:
|
IRM_REROUT_NM | 8 bytes | 92 | X'5C' | Character string (A through Z, 0 - 9, or special characters, such as @, #, $).
The reroute tpipe name of the client reroute request. This field is optional. Recommendation: Use blanks for the default value.
When
you specify the IRM_REROUT_NM field, you must also specify:
To preserve the expected offset of this field, when you specify IRM_REROUT_NM, you must also
specify the following fields with valid values or blanks:
IRM_REROUT_NM and IRM_RT_ALTCID use the same offset. Both cannot be specified on the same message. |
IRM_RT_ALTCID | 8 bytes | 92 | X'5C' | Alternate client ID for a RESUME TPIPE call. This is an optional field. If the
alternate client ID is provided, the IRM_ARCH field must be set to IRM_ARCH1. To preserve the
expected offset of this field, when you specify IRM_RT_ALTCID, you must also specify the following
fields with valid values or blanks:
|
IRM_TAG_ADAPT | 8 bytes | 100 | X'64' | Name of the adapter that IMS Connect calls to convert XML messages to and
from select programming languages. To preserve the expected offset of this field, when you
include the IRM_TAG_ADAPT field, you must also specify the following fields with valid values or
blanks:
|
IRM_TAG_MAP | 8 bytes | 108 | X'6C' | Name of the converter the XML adapter calls to perform that actual conversion of
XML messages to and from select programming languages. To preserve the expected offset of this
field, when you include the IRM_TAG_MAP field, you must also specify the following fields with valid
values or blanks:
|
IRM_MODNAME | 8 | 116 | 74 | The MFS MOD name for input messages. |
IRM_CORTKN | 0XL40 | The correlation token for a synchronous callout message. The correlation token includes information that correlates a reply to a synchronous callout request with the IMS system and IMS application program that issued the request. | ||
IRM_CT_LEN | 2 | 124 | 7C | The length of the correlation token. |
IRM_CT_RESV1 | 2 | 126 | 7E | Reserved. |
IRM_CT_IMSID | 4 | 128 | 80 | The IMSID of the IMS system that scheduled the IMS application that issued the synchronous callout request. |
IRM_CT_MEMTK | 8 | 132 | 84 | The OTMA TMEMBER token. |
IRM_CT_AWETK | 8 | 140 | 8C | OTMA message token. |
IRM_CT_TPIPE | 8 | 148 | 94 | OTMA TPIPE name. |
IRM_CT_USERID | 8 | 156 | 9C | The user ID specified in the ICAL call. |
IRM_SESTKN | 8 | 164 | A4 | Session token value used for IMS Connect-to-IMS Connect connections. |
IRM_EXTN_OFF | 2 | 172 | AC | Offset value from the start of the IRM to the first IRM extension. |
IRM_F6 | 1 | 174 | AE | The purpose of this flag depends on its value.
|
IRM_RESERVED1 | 1 | 175 | AF | Reserved. |
ORG IRM_MAP | ||||
IRM_XID | XL140 | 32 | 20 | The IRM_XID field is used for two-phase commit protocol
messages. The IRM_XID field is only valid for IMS TMRA messages
with IRM_ARCH less than 5. For IRM_ARCH = 5 and greater, you must use the value in the IRM_LEN field
to determine the location of the XID in the input buffer. This must be done because the IRMMASK has
been extended to support variable length IRM extensions. The IRM extensions are included as part of
the IRMMASK and they contribute to the total length specified in IRM_LEN. Thus, the XID will start
at the byte following the end of the now larger IRMMASK, which might also contain IRM extensions.
For IRM_ARCH = 5 and greater, the message might look as follows: LLLL | IRM + IRM
EXTENSION(S)| XID | OTMA HEADERS... |
ORG IRM_MAP: Remapping of offsets 32-35. | ||||
IRM_TMRA_EXTN_OFF | 2 | 32 | 20 | Offset value from the start of the IRM to the first IRM extension in IMS TMRA messages with IRM architecture level, IRM_ARCH, equal to or greater than 5. |
IRM_TMRA_SRVD1 | 2 | 34 | 22 | Reserved for IMS Connect. |
IRM_TMRA_EXTN_START | X | 36 | 24 | Denotes the start of the first IRM extension for IMS TMRA messages. |
*IRM_XID_ARCH5 | XL140 | X | X | This field represents the size of the XID for IMS TMRA messages that use IRM_ARCH equal to or greater than 5. The location of this field in memory varies depending on the number of IRM extensions and their sizes. Therefore, the value in IRM_LEN must be used to determine the actual location of the XID. For more information, see the Meaning column for IRM_XID. |