Table of Contents Previous Next PDF


CICS Runtime Integration with Non-3270s Terminal

CICS Runtime Integration with Non-3270s Terminal
This chapter contains the following topics:
Interface
Non-3270s terminal should submit request and get response through Tuxedo ATMI tpcall(). The service name of tpcall() should follow the convention described in the following section; in addition, data buffer type exchanged with server ARTWTRN/ARTWTR1 could only be Tuxedo FML32. The detailed FML32 fields and each data structure will be described in the following section.
Service Name Convention
In order to distinguish the service invoked by non-3270s clients from the service invoked by TN3270 terminal, ARTWTRN/ARTWTR1 sever advertises each CICS transaction as a Tuxedo service with the name prefix WEB_. When client submits the request to ARTWTRN/ARTWTR1, the service name of tpcall must follow the convention.
Fml32 Buffer Definition
The interface between non-3270s client and ARTWTRN/ARTWTR1 could only be Tuxedo FML32 buffer. All the application data and some terminal control information will be encapsulated in the FML32 buffer.
Table 1 lists all FML32 FIELDs, which will be published in $KIXDIR/include/msgflds32.
 
The name of the current MAPSET, which will be displayed in Client’s UI.
The name of the current MAP, which will be displayed in Client’s UI.
The terminal control characters of the command “CICS SEND”, “CICS SEND MAP”, “CICS SEND TEXT”, and “CICS SEND CONTROL”.
At times, CICS APIs above will be invoked with some control options, such as FREEKB, ALARM, ERASE, ERASEUP, CURSOR, etc; therefore, these control options should be inserted to this FML field.
The attention ID and cursor position when doing “CICS RECEIVE” and “CICS RECEIVE MAP”.
CX_WEB_APPDATA
Mainframe CICS provides a utility to generate the Copybook from the Mapset file. The Copybook is used to define the structure of the application data when transaction invokes CICS SEND/RECEIVE MAP.
At ART CICS runtime, we also provide a corresponding utility tcxmapgen, which generates the Copybook from Mapset file; regarding that the structure of Copybook generated by tcxmapgen is almost the same as the one generated in Mainframe CICS, application data exchanged between the Client and ARTWTRN/1 must follow the definition in the Copybook of each Mapset.
For CICS SEND/RECEIVE and CICS SEND TEXT, ARTWTRN/1 and Client just need to insert the plain textual characters into the field CX_WEB_APPDATA.
The head file might not match the copybook generated from BMS file by ART CICS offline utility tcxmapgen at runtime due to data structure alignment on open system. It might need customers to adjust copybook by padding appropriate FILLER.
CX_WEB_CTRL_CHAR
In Mainframe CICS, an outbound data stream is a data stream sent from the application program to the terminal with the following format:
| Command | Write Control Character | Indicate Cursor | Orders | Data | Orders | Data | ...
CMD defines the function to be performed by the terminal. ARTWTRN/1 will support W and EW. It’s a one byte.
WCC instructs how to perform the CMD function. It’s a one byte with the following format:
| 0 | 1 | 2/3 | 4 | 5 | 6 | 7 |
| * | Reset | Printout | Start | Sound | Keyboard | Reset |
| | | Format | Print | Alarm | Restore | MDT |
If SEND MAP/TEXT command sets cursor option, IC should be inserted into the header of 3270 data stream with the following format in the case of SEND command without cursor option. If this command sets option ERASE, the cursor will set to the upper left corner of the screen.
| SBA | ROW | COL | IC |
Besides CMD, WCC, and IC described above, other control characters could be also contained in the header of 3270 data stream, such as EUA.
At ART CICS runtime, we define a FML field CX_WEB_CTRL_CHAR, a CARRAY with 12 bytes, to store these control characters; however, in this release, we plan to support CMD, WCC, and IC, all of which are mostly used. The data sequence of this field is as below:
| CMD | WCC | SBA | ROW | COL | IC | ...
Only the first 6 characters will be used in this field, the rest 6 characters will be reserved with X’00’, and the code of these characters will be set as EBCDIC, not ASCII. SBA, ROW, COL, and IC will be set with X’00’ in the buffer if there is no need to set cursor; If IC is not set via the option cursor of CICS commands, but set in MAPSET/MAP file, no IC will be set in this field and customers need to handle IC themselves.
CX_WEB_AID
In Mainframe CICS, an inbound data stream is sent from the terminal to the application program and contains an attention identifier (AID) followed by cursor or by data directly. The AID describes the action that caused the transmission of the inbound data stream with the following format:
| AID | ROW | COL |
At ART CICS runtime, we defined a FML field CX_WEB_AID to store these three characters and AID will always be function key of the keyboard, such as Enter, Clear, F01~F24, etc. ROW and COL mean the current cursor position when terminal sends the inbound data stream to application program. The code of these characters will be set as EBCDIC, not ASCII.
Oracle Tuxedo External DPL Communication Interfaces
Clients
ART for CICS allows user to make distributed program calls from a native Tuxedo client or Tuxedo ud32 utility.
The client uses Tuxedo FML32 fields or RECORD to communicate with ARTDPL.
In case of using Tuxedo FML32 buffer, COMMREA can be exchanged in the request/response, mirror transaction and TWA can be validated, even CHANNEL and CONTAINER can also be used.
In case of using Tuxedo RECORD buffer, COMMAREA can be exchanged using RECORD data area. Mirror transaction, TWA, or CHANNEL/CONTAINER are not supported.
Interface
Tuxedo client should send/receive request/response through Tuxedo ATMI tpcall(). In addition, data buffer type exchanged with server ARTDPL can only be Tuxedo FML32 or RECORD. Please refer to section DPL Servers (ARTDPL) for the details of ARTDPL services.
Making ARTDPL Service Calls
Three kinds of services published by ARTDPL can be accessed by Tuxedo clients. User can choose one of them depending on real scenario.
DPL <program> can be advertised by ARTDPL as a Tuxedo service. And the prefix of service name is the CICS region <sysid>_ which current ARTDPL server belongs to. If client tries to call this service and exchange the COMMAREA with ARTDPL server, the following FML32 fields must be present in the request:
CX_USERID
CXMW_MESSAGE
Meanwhile, the FML32 filed CX_PROGRAM must not be present, because ARTDPL server can realize the name of DPL program to be executed from the service name.
You can enable the mirror transaction and TWA. Please refer to next section for the details.
Type B: MIRROR_<transid>
Type C: <applid>_MIRROR_<transid>
Mirror transaction can also be advertised by as a Tuxedo service. And the prefix of service name is the MIRROR_ or <applid>_MIRROR_. In this case, mirror transaction and TWA is always enabled. User needs configure the mirror transactions and their TWA size in the transactions.desc at first. If client tries to call these two services and exchange the COMMAREA with ARTDPL server, the following FML32 fields MUST be present in the request:
To use RECORD as the data buffer to call ARTDPL server, you should configure IN-TYPE and OUT-TYPE for the called program in programs.desc. When you use RECORD, Tuxedo clients can only use Type A services.
Fml32 Buffer Definition
Table 2 lists all FML32 FIELDs, which will be published in $KIXDIR/include/msgflds32.
 
Table 2 FML32 FIELDS
Mirror Transaction and TWA
Prerequisites
You must define the mirror transactions and their TWA size in transactions.desc. The definitions can be CICS system mirror transactions CSMI/CVMI or customized mirror transactions. For more information, see Supporting TWA in ARTDPL in the Oracle Tuxedo Application Runtime for CICS User Guide.
The following example defines two mirror transactions. CSMI is the system default mirror transaction; MIR1 is the user-defined mirror transaction.
CSMI;SIMPAPP;system default mirror tran;DFHMIRS; ; ; ; ; ; ;ENABLED; ; ; ; ;15000
MIR1;SIMPAPP;user defined mirror tran;DFHMIRS; ; ; ; ; ; ;ENABLED; ; ; ; ;10000
Specify the target mirror transaction and its TWA size in the request to ARTDPL, the following FML32 fields must to be present:
CX_TRANSID:
Specify the target mirror transaction to be used in executed DPL program. If CX_TRANSID is not present in the request, system mirror transaction CSMI/CVMI will be located. If CSMI/CVMI is not present in transactions.desc, SYSIDERR occurs. If the specified CX_TRANSID is not a valid mirror transaction defined in the transactions.desc, SYSIDERR occurs.
EIBTRNID In Executed DPL Program
In request to ARTDPL, if CX_TRANSID is present, ARTDPL sets EIBTRNID as the value of CX_TRANSID. If CX_TRANSID is not present, the EIBTRNID is set to system mirror transaction CSMI/CVMI.
ABEND Condition
If DPL program aborts, ARTDPL server returns TPFAILS to client. User can get the CICS ABEND code from FML32 field CX_ABENDCODE in the response of ARTDPL.
See Also

Copyright © 1994, 2017, Oracle and/or its affiliates. All rights reserved.