Existing unchanged IMS™ transactions that run as Message Processing Programs (MPPs) or fast path programs (IFPs) can be called using the WebSphere® Application Server for z/OS® optimized local adapters over Open Transaction Manager Access Callable Interface (OTMA C/I) support. This support is provided by a new set of native modules introduced with optimized local adapters that use the IMS OTMA C/I.
Applications that are deployed on WebSphere Application Server for z/OS and must call existing IMS transactions, use the ola.rar file to reach the OTMA C/I interfacing modules. There are several new connection factory attributes that allow applications to supply the name of the target IMS system and the associated OTMA XCF information. There is also an attribute added that allows the application to set the Sync Level that is used for the exchange. See the topic Connection factory considerations for optimized local adapters for more details about these parameters.
See the section Global transactions - Websphere applications calling IMS applications for more information about this support.
Prior to the support for multi-segment messages in Version 8, request and response messages had to be single segment, with maximum send and receive segment size no larger than 32760 bytes, including the message header.
<----------------- HEADER ----------------> <------ DATA ------>
LL + ZZ + IMS Transaction Name + Message request data
(2 bytes) | (2 bytes) | (8 bytes) | (up to 32744 bytes)
The Transaction Name in the message is used for the call to OTMA C/I and must be a transaction defined and reachable in either an IMS MPR or fast path dependent region.
<----- HEADER -----> <------------------ DATA ----------------->
LLLL + Message response data
(4 bytes) | (up to 32756 bytes)
The CICS/IMS Java Data Binding wizard in Rational® Application Developer
is used to create helper classes with setter and getter methods that
can be used to handle the mapping of data to and from both Java objects and binary forms. This
mapping of data applies for both messages sent to IMS from WebSphere Application
Server and response data. IMS multi-segment messages supports request and response messages to be larger than the prior 32744 bytes for request messages and 32756 for response messages. However, a single segment can be no larger than 32768 bytes, including the message header.
OTMAMaxSegments represents the largest number of segments supported for sending and receiving IMS messages on the current connection. If a value is not specified, the default is 1.
OTMAMaxRecvSize represents the largest possible message that can be returned from IMS using the WebSphere optimized local adapters over OTMA support. If a value is not specified, the default is 32768.
If you need to implement any of these configuration settings, you must restart the WebSphere Application Server for z/OS server, and your IMS environment before applications running in a global transaction with WebSphere Application Server will have their transaction context coordinated with applications running in IMS.
For multiple-segment messages, the default is LLZZ for requests from WebSphere optimized local adapters to IMS. The default LLLL+message data for responses from IMS to WebSphere Application Server remains the same.
There are methods provided with this support that allow for changing these defaults. The setOTMARequestLLZZ() and setOTMARequestLLLL() methods provide the ability to set the length prefix style for message requests from WebSphere Application Server to IMS. The methods, setOTMAResponseLLZZ() and setOTMAResponseLLLL(), provide the ability to set the message prefix style to LLZZ or LLLL for message responses. The following example is the message format expected for calls to IMS from applications in WebSphere Application Server.
<----------------- HEADER ------------------>
LL + ZZ + IMS Transaction Name +
(2 bytes) | (2 bytes) | (8 bytes)
<-------------------------- DATA SEGMENT 1 ---------------------->
Message segment 1 data
(up to 32756 bytes)
<-------------------------- DATA SEGMENT 2 ---------------------->
+ LL + ZZ + Message segment 1 data
(2 bytes) | (2 bytes) | (up to 32764 bytes)
…
<-------------------------- DATA SEGMENT N ---------------------->
+ LL + ZZ + Message segment N data
(2 bytes) | (2 bytes) | (up to 32764 bytes)
<----------------- HEADER ------------------>
LLLLZZ + IMS Transaction Name +
(6 bytes) | (8 bytes)
<-------------------------- DATA SEGMENT 1 ---------------------->
Message segment 1 data
(up to 32754 bytes)
<-------------------------- DATA SEGMENT 2 ---------------------->
+ LLLLZZ + Message segment 1 data
(6 bytes) | (up to 32762 bytes)
…
<-------------------------- DATA SEGMENT N ---------------------->
+ LLLLZZ + Message segment 1 data
(6 bytes) | (up to 32762 bytes)
<----- HEADER -----> <----------- DATA SEGMENY 1 ------------>
+ LL + ZZ + Message segment 1 data
(2 bytes) | (2 bytes) | (up to 32764 bytes)
<-------------------------- DATA SEGMENT 2 ---------------------->
+ LL + ZZ + Message segment 2 data
(2 bytes) | (2 bytes) | (up to 32764 bytes)
…
<-------------------------- DATA SEGMENT N ---------------------->
+ LL + ZZ + Message segment N data
(2 bytes) | (2 bytes) | (up to 32764 bytes)
-- HEADER --> <----------- DATA SEGMENT 1 ------------>
+ LLLLZZ + Message segment 1 data
(6 bytes) | (up to 32762 bytes)
<-------------------------- DATA SEGMENT 2 ---------------------->
+ LLLLZZ + Message segment 2 data
(6 bytes) | (up to 32762 bytes)
…
<-------------------------- DATA SEGMENT N ---------------------->
+ LLLLZZ + Message segment N data
(6 bytes) | (up to 32762 bytes)