Listing 6‑1 Sample Message using OTMA
The INCLUDE distribution library contains the following header files and copybooks for use by IMS server transactions.
The request message presented to the server transaction contains the name of the transaction pipe (tpipe) in the LTERM field of the I/O PCB. If the security feature is in use, the USERID and GROUPID fields of I/O PCB also contain relevant data.An IMS client transaction is one that issues a request for a service provided by a remote system. You must install the DFSYPRX0 and DFSYDRU0 IMS user exits prior to using an IMS client transaction with the OTMA client gateway. Refer to the IBM document, Open Transaction Manager Access Guide for additional information on these user exits. Basic samples of these exits are in the “Sample JCL and User Exits” section.Listing 6‑2 Client Request/Response Message Format
Reserved for use by TMA TCP for IMS. For a request message, this field must be initialized to binary zero (low values). The name of the transaction (IMS transaction code) that is to be scheduled to process the response to a request. A response transaction must be specified for all requests, even if an application-level response is not required. The name of the terminal (IMS LTERM) associated with this request. For example, if the request is issued by a transaction processing a terminal message, this name is the name of the associated terminal. Reserved for use by TMA TCP for IMS. For a request message, this field must be initialized to binary zero (low values). The INCLUDE distribution library contains the following header files and copybooks for use by IMS client transactions.
Every client request must designate a response transaction (even though the request itself may not require an application-level response). The TMA TCP for IMS product schedules the response transaction if an error is encountered that prevents processing of the request (for example, the request may be improperly formatted, or the specified service may be unavailable).
A CARRAY is a buffer of raw data that contains no terminating character. The data in the array undergoes no conversion or translation; it is sent from one system to another without modification. (A CARRAY is an exemplary buffer type for a graphics file.) A VIEW buffer is a collection of field definitions that can be treated as a single entity. It is comparable to a record layout in COBOL or a structure in C. Fielded manipulation language (FML) buffers are variable length, dynamic, self-describing buffers. Each field in the buffer has its own descriptive header. In the Oracle Tuxedo product, FML buffers can be tied closely to VIEW buffers so that conversion from one to the other is direct.
• CARRAY fields are passed untranslated as sequences of bytes.
• STRING and CHAR fields undergo ASCII to EBCDIC translation (if needed).
•
• FLOAT and DOUBLE fields are translated to COMP‑1 and COMP‑2, respectively.
Note: The Oracle Tuxedo product provides a field type named dec_t that supports decimal values within VIEWs. The TMA TCP for IMS gateway translates these fields into machine independent representations of packed decimals. For example, dec_t(m,n) becomes S9(2*m-(n+1))V9(n) COMP-3. Therefore, a decimal field with a size of 8,5 corresponds to S9(10)V9(5) COMP-3.
• Suggestions that help you develop VIEW definitions for input and output buffers and recordsWhen you create VIEW definitions for input and output buffers that are used by IMS applications, do not specify extra characters for terminating NULL characters that are used in string fields.For example, when a remote IMS application program expects 10 characters in an input record, specify 10 for that field, not 10 plus 1 (for the terminating NULL character).
Note: The character set translations performed by TMA TCP Gateway are fully localizable, in accordance with the X/Open XPG Portability Guides. ASCII and EBCDIC translations are loadable from message files. The TMA TCP Gateway product contains default behaviors that should meet the requirements of most English-language applications. However, you may find it necessary to customize tables. For complete instructions, see Oracle Tuxedo Mainframe Adapter for TCP Gateway User Guide.For example, you can convert an FML field of double into a packed decimal field on the remote target system by specifying an appropriate dec_t type VIEW element.In addition, you can convert numeric values into strings (and the reverse). For example, while FML buffers do not directly support the dec_t type, you can place decimal values in string fields and map these to dec_t fields within VIEW definitions.