home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
o22516d1.zip
/
ECI.@OC
/
ECI.DOC
Wrap
Text File
|
1992-09-16
|
54KB
|
908 lines
CICS OS/2 VERSION 1.20 ECI
ISSUE DATE: MARCH, 1992
CHAPTER 1. EXTERNAL CALL INTERFACE (ECI)
_________________________________________
WHY USE ECI?
____________
When CICS OS/2 Version 1.20 is running on a system the
External Call Interface (ECI) allows a non CICS program
to initiate programs in CICS OS/2 Version 1.20. This
non-CICS program does not issue any normal CICS commands
itself but uses ECI to request CICS OS/2 Version 1.20 to
run a program on its behalf. The various options
available for calling CICS programs via ECI give the
programmer a great deal of power. Calls can be single or
parallel, using Logical Units of Work (LUWs). They can
also be either synchronous or asynchronous.
The real strength of ECI is in the way the CICS program
that is the object of the call is invoked. In fact, to
this called program it appears that the caller was
another CICS program that has issued an EXEC CICS LINK
command. The called program is presented with a CICS
COMMAREA containing the data passed on the ECI call, and,
when it issues an EXEC CICS RETURN, the updated COMMAREA
will be passed back to the calling program.
The invisibility of the calling program to the called
program gives significant advantages:
o When combined with the Distributed Program Link (DPL)
function applications can call CICS programs on any
connected CICS system.
o CICS applications can be ported from host to PWS and
exploit the graphical interfaces of the PWS with
minimal effort.
You can do this by writing the applications business
logic as a set of LINKable services and calling these
from either BMS or, via ECI, a graphical CUA front
end.
o It is possible to write an application in which the
business logic resides on a host CICS Application
Owning Region (AOR) with:
A BMS front end for users of 3270 devices which
transaction route from host CICS Terminal Owning
Regions (TORs) and call the business logic
locally.
A graphical front end for PWS users. They can
call the business logic from ECI using DPL.
HOW TO MAKE ECI CALLS
_____________________
An ECI program is a discrete program which is
executed outside the environment of CICS OS/2 Version
1.20. As this program calls another program which is
executed inside the environment of CICS OS/2 Version
1.20, there is a separate task of writing the called
program. This is a standard CICS application program.
Calls are made via a control block - ECI-PARMS, defined
in supplied COBOL copybook FAAECIW.CBL, or ECI_PARMS,
defined in supplied C header file FAAECIH.H. Data is
exchanged in a COMMAREA, as for normal CICS inter-program
communication.
The method of calling ECI for C programs is:
ECI_PARMS EciBlock;
.
.
.
Response = FaaExternalCall(&EciBlock);
The method of calling ECI for COBOL programs is either:
CALL '_FAAEXTERNALCALL' USING ECI-PARMS.
or
CALL '_FAAECI' USING ECI-PARMS.
Unused fields in the control block should be filled with
zeroes. Often the simplest means of achieving this is to
fill the entire control block with zeroes and then to
initialize the specific fields which are required.
TYPES OF CALL
_____________
The type of ECI call is controlled by the setting of the
ECI-CALL-TYPE parameter in the control block. Calls can
be either single or parallel, and either synchronous or
asynchronous. Several calls can be tied together in one
Logical Unit of Work (LUW) by setting the ECI-EXTEND-MODE
parameter to ECI-EXTENDED.
SINGLE CALLS
Only one of these calls can be made at a time from a
process.
These calls are retained so that programs written for
previous releases of CICS OS/2 Version 1.20 will still
run. As serial calls give no advantage over parallel
calls, it is recommended that only parallel calls be used
for new programs.
Single synchronous call (ECI-SYNC-CALL)
The calling program makes a single call and has to wait
for the reply to come back. A parallel synchronous call
can be used in exactly the same way.
Single asynchronous call (ECI-ASYNC-CALL)
Asynchronous processing is used for Presentation Manager
programs only. The called program returns an initial
response code to the calling program to indicate whether
it accepts the request. If it accepts, the processing is
carried out in a separate thread, and a message is posted
to the PM window specified in ECI-WINDOW-HANDLE when it
has finished.
PARALLEL CALLS
These calls are recommended for new programs.
Parallel processing of calls allows up to 16 LUWs to be
handled simultaneously for each session.
Before making the first call of a LUW, ECI-LUW-TOKEN
should be set to zero. When the calling program submits
the first call ECI-LUW-TOKEN is returned with a valid
token. The program must use this token as input to the
subsequent calls in the LUW to make the logical
connection.
Parallel synchronous call (ECI-SYNC-PARALLEL)
As this is a synchronous call the calling thread is
forced to wait for a reply before it can continue with
another task. The returned LUW token can then be used in
extended calls.
Parallel asynchronous call (ECI-ASYNC-PARALLEL)
When the calling program submits the first call it receives
a LUW token which it uses as input to the subsequent calls
in the LUW to make the logical connection.
As this is an asynchronous call the LUW is immediately
returned. A Presentation Manager message indicating
completion is posted later. A second call should not be
made within this LUW until the completion message is
received.
SAMPLE ECI PROGRAMS
___________________
The two illustrative fragments of programs shown here -
one each in C and COBOL - both perform the same function.
They both perform the following tasks:
1. Allocate storage for the control block ECI-PARMS
(COBOL), EciBlock (C)
2. Allocate the commarea, COMMAREA (COBOL), CommArea (C)
3. Fill the commarea with 0's
4. Set all the components of the control block to 0
5. Put the required control information into the control
block. The examples shown here use a call type of
ECI-SYNC-PARALLEL, which means that several LUWs can
be handled simultaneously.
6. Make the ECI call
7. Check the return code and take any necessary remedial
action
8. Save the LUW token for use in a future call in the
same LUW. For the future call the LUW token should
be passed into the control block so that the calls
can be logically tied together.
A SAMPLE ECI PROGRAM IN COBOL
+----------------------------------------------------------+
| |
| ********************************************* |
| * A COBOL SAMPLE PROGRAM TO SHOW USE OF ECI * |
| ********************************************* |
| IDENTIFICATION DIVISION. |
| PROGRAM-ID. SAMPLECI. |
| ENVIRONMENT DIVISION. |
| DATA DIVISION. |
| WORKING-STORAGE SECTION. |
| |
| 01 PROG-FINISH PIC X(11) VALUE 'Program Fin'.|
| 01 WS-LUW-SAVE PIC X(4) |
| 01 WS-COMMAREA PIC X(18) |
| |
| * Copy in the ECI call parameter block definition|
| |
| COPY FAAECIW. |
| **************************************** |
| PROCEDURE DIVISION. |
| **************************************** |
| * Set up the ECI call parameters |
| * |
| MOVE LOW-VALUES TO WS-COMMAREA. |
| SET ECI-SYNC-PARALLEL TO TRUE. |
| MOVE 'FAADECIC' TO ECI-PROGRAM-NAME. |
| MOVE 'SYSAD ' TO ECI-USERID. |
| MOVE 'SYSAD ' TO ECI-PASSWORD. |
| MOVE 'ABCD' TO ECI-TRANSID. |
| MOVE SPACES TO ECI-ABEND-CODE. |
| SET ECI-COMMAREA TO ADDRESS OF WS-COMMAREA. |
| MOVE 18 TO ECI-COMMAREA-LENGTH. |
| MOVE 5 TO ECI-TIMEOUT. |
| SET ECI-EXTENDED TO TRUE. |
| * |
| * Call program FAADECIC through the ECI interface|
| * program |
| CALL '_FAAEXTERNALCALL' USING ECI-PARMS. |
| * |
| * General error checking |
| * |
| MOVE RETURN-CODE TO ECI-ERROR-ID |
| IF ECI-NO-ERROR |
| MOVE ECI-LUW-TOKEN TO WS-LUW-SAVE |
| |
| ELSE |
| . |
| . |
| . |
| END-IF. |
| * Program termination |
| |
| DISPLAY PROG-FINISH. |
| |
| STOP RUN. |
| |
+------------------------------------------------------- +
Figure 1. A sample ECI COBOL program
A SAMPLE ECI PROGRAM IN C
+------------------------------------------------------------+
| |
| /************************************************/ |
| /* A 'C' sample program to demonstrate the use */ |
| /* of the ECI interface */ |
| /************************************************/ |
| |
| #include <memory.h> |
| #include <string.h> |
| #include <faaecih.h> |
| |
| #define COMMAREA_SIZE 18 |
| |
| void cdecl main() |
| { |
| ECI_PARMS EciBlock; /* ECI parameter*/| */
| /* block */|
| int ECIRetCode; /* Return code */|
| /* from the ECI */|
| /* call */|
| char CommArea[COMMAREA_SIZE]; /* Comm area */|
| /* storage */|
| int ECILuwToken; /* LUW token | */
| |
| memset(CommArea, 0, COMMAREA_SIZE); |
| memset(&EciBlock, 0, sizeof(ECI_PARMS)); |
| |
| /***********************/ |
| /* Initialize EciBlock */ |
| /***********************/ |
| |
| EciBlock.eci_call_type = ECI_SYNC_PARALLEL; |
| memcpy(EciBlock.eci_program_name, "FAADECIC", 8) |
| memcpy(EciBlock.eci_userid, "SYSAD ", 8); |
| memcpy(EciBlock.eci_password, "SYSAD ", 8); |
| memcpy(EciBlock.eci_transid, "ABCD", 4); |
| EciBlock.eci_commarea = CommArea; |
| EciBlock.eci_commarea_length = COMMAREA_SIZE; |
| EciBlock.eci_timeout = 5; |
| EciBlock.eci_extend_mode = ECI_EXTENDED; |
| |
| ECIRetCode = FaaExternalCall(&EciBlock); |
| |
| if (ECIRetCode != ECI_NO_ERROR) |
| { |
| /* An error has been encountered - take */ |
| /* remedial action */ |
| . . |
| . . |
| } |
| else |
| { |
| /* Save LUW token for reuse */ |
| ECILuwToken = ECIBlock.eci_luw_token; |
| . . |
| . . |
| } |
| . . . |
| . . . |
| } |
| |
+------------------------------------------------------------+
Figure 2. A sample ECI C program
BUILDING ECI PROGRAMS
_____________________
An ECI program is a standard stand-alone program written
for OS/2. It can be written in either C or COBOL and the
only requirement is that it must be linked with the
FAACLIB library. As the FAACLIB library is independent
of memory model for C, the ECI program itself can use any
memory model. ECI programs written in COBOL should use
the large memory model.
COBOL programs should use the FAAECIW copybook.
C programs should include FAAECI.H which defines the call
interface.
A program, ECIPROG, can be built from a single source
file as:
FOR C PROGRAMS: CL ECIPROG.C /Link FAACLIB
FOR COBOL PROGRAMS: COBOL ECIPROG
LINK /Nod ECIPROG,,,PCOBOL+DOSCALLS+FAACLIB;
ECI programs will not run in the DOS box.
The entry point of the ECI is ordinal 1 and is in
FAACICS.DLL. In languages that cannot call explicit
entry points in a DLL, it is therefore possible to call
the DLL when an ECI call is required.
EXTERNAL CALL INTERFACE (ECI)
_____________________________
o ECI allows a non-CICS OS/2 application to run a CICS
program as a subroutine
o Data is exchanged in a "COMMAREA" as for normal CICS
inter-program communication
o A special asynchronous form of the interface is
provided to give you easier access from Presentation
Manager applications.
ECI is only available with OS/2 workstations.
Each set of extended calls ties up one free task for the
duration of its execution. The execution of the task
ends either when the ECI-EXTEND-MODE parameter is set to
one of ECI-NO-EXTEND, ECI-COMMIT or ECI-BACKOUT, or when
the call returns ECI-ERR-TRANSACTION-ABEND.
This means that you must define enough free tasks in the
System Initialization Table (SIT) to service the maximum
expected number of calls. Calls will continue to be
accepted when there are no free tasks, but they cannot
run until a free task becomes available.
EXTERNAL CALL PARAMETER BLOCK
You should fill the entire parameter block with nulls
(0x00) before the start of each logical unit of work.
COBOL parameters are in uppercase and separated by
hyphens, ("ECI-CALL-TYPE"), whereas C parameters are in
lowercase and separated by underscores,
("eci_call_type"). COBOL and C defined variables are in
uppercase, separated by hyphens in COBOL
("ECI-SYNC-PARALLEL"), and separated by underscores in C
("ECI_SYNC_PARALLEL"). The list below gives them in
COBOL format.
ECI-CALL-TYPE (SHORT)
A value which determines whether the call is
processed synchronously or asynchronously or
whether calls are processed singly or in
parallel. Single processing of calls is
retained to ensure that backwards compatibility
is maintained.
Values for this field are as follows:
ECI-SYNC-CALL
Single synchronous call
ECI-ASYNC-CALL
Single asynchronous call
ECI-SYNC-PARALLEL
Parallel synchronous call
ECI-ASYNC-PARALLEL
Parallel asynchronous call
ECI-PROGRAM-NAME (CHAR8)
An 8 character field containing the name of the
program you wish CICS OS/2 Version 1.20 to
execute. Unused characters should be padded
out with spaces. You are normally recommended
to use only upper case characters in this field
as it is sensitive to case.
ECI-USERID (CHAR8)
An 8 character field containing a valid user
id. Unused characters should be padded out
with spaces.
ECI-PASSWORD (CHAR8)
An 8 character field containing a valid
password. Unused characters should be padded
out with spaces.
ECI-TRANSID (CHAR4)
A 4 character field containing the CICS OS/2
Version 1.20 transaction code. If specified,
the program will run under this ID.
ECI-ABEND-CODE (CHAR4)
A 4 character field in which a CICS OS/2
Version 1.20 abend code is returned if the
transaction abends (synchronous calls only).
Unused characters are padded out with spaces.
ECI-COMMAREA (PVOID)
A pointer to an area of memory not larger than
32767 bytes that the called CICS program will
receive as its COMMAREA. If you are making an
asynchronous call, this storage should not be
reused until the completion message has been
posted, as CICS will place the final contents
of the COMMAREA in this area.
Use a null pointer and set the length,
specified in ECI-COMMAREA-LENGTH, to zero if no
COMMAREA is required
ECI-COMMAREA-LENGTH (SHORT)
The length of the above COMMAREA in bytes. If
no COMMAREA is required then this should be set
to zero and ECI-COMMAREA should be set to a
null pointer.
ECI-TIMEOUT (SHORT)
A value specifying the maximum wait time in
seconds for CICS OS/2 Version 1.20 to respond
to the request. Valid entries are in the range
0 to 32767 - anything larger would constitute a
negative value, which is not allowed. A value
of 0 forces an indefinite wait.
Note that when a timeout occurs control is
returned to the calling program, however the
called program will continue to run to
completion, when any changes will be rolled
back.
ECI-SYS-RETURN-CODE (SHORT)
The error number of any OS/2 system error which
may occur is returned in this variable.
ECI-EXTEND-MODE (SHORT)
A value which determines whether or not the
connection to CICS OS/2 Version 1.20 is
terminated at the end of this call.
Values for this field are as follows:
ECI-NO-EXTEND
Terminate connection to CICS OS/2
when this call is finished. This
results in an automatic end of task
sync point for CICS resources thus
ending the Logical Unit of Work
ECI-EXTENDED
Retain the connection to CICS OS/2
when this call is finished. This
enables a Logical Unit of Work to
span several calls.
ECI-CANCEL
Has the same effect as ECI-COMMIT.
ECI-COMMIT
Cancel a previous connection to CICS
OS/2. This performs the equivalent
of ECI-NO-EXTEND with a no-op
program. This terminates the current
Logical Unit of Work.
ECI-BACKOUT
Forces a transaction to roll back to
its original state.
ECI-WINDOW-HANDLE (HWND)
(Asynchronous calls only.) The handle of the
window to which the reply message will be
posted.
ECI-MESSAGE-ID (SHORT)
(Asynchronous calls only.) The message
identifier to be used for posting the reply
message.
ECI-MESSAGE-QUALIFIER (SHORT)
(Asynchronous calls only.) An optional value
to allow you to identify each asynchronous call
if you are making more than one.
ECI-LUW-TOKEN (LONG)
(Parallel calls only.) A value which allows
you to identify each parallel call if you are
making more than one. It is also used to tie
parallel calls to one LUW. It should initially
be set to zero and CICS will update it with the
value of a valid token on the first or only
call of a LUW.
ECI-RESERVED (CHAR6)
This field should be initialized to all 0's.
PRESENTATION MANAGER REPLY MESSAGES
When a program makes an asynchronous call, CICS OS/2
Version 1.20 returns the result in a PM message window
using the specified window handle and message id. The
message is divided into two parameters, as shown below:
MPARAM1
HIGH ORDER 16 BITS Specified message
qualifier
LOW ORDER 16 BITS Return code
MPARAM2 4-character abend code if required
MINIMUM SET OF INPUT PARAMETERS
This table shows which input parameters are necessary for
each type of call.
+-----------------------------------------------------------------+
| Table 1. Required parameter vs call type |
+--------------+----------+----------+-------------+--------------+
| PARAMETER | ECI- | ECI- | ECI- | ECI- |
| ECI- |SYNC-CALL |ASYNC-CALL|SYNC-PARALLEL|ASYNC-PARALLEL|
+--------------+----------+----------+-------------+--------------+
| CALL-TYPE | YES | YES | YES | YES |
+--------------+----------+----------+-------------+--------------+
| PROGRAM-NAME | YES | YES | YES | YES |
| | except | except | except | except |
| | when | when | when | when |
| |cancelling|cancelling| cancelling | cancelling |
| | or | or | or | or |
| | backing | backing | backing | backing |
| | out | out | out | out |
+--------------+----------+----------+-------------+--------------+
| USERID | YES | YES | YES | YES |
+--------------+----------+----------+-------------+--------------+
| PASSWORD | YES | YES | YES | YES |
+--------------+----------+----------+-------------+--------------+
| TRANSID | optional | optional | optional | optional |
+--------------+----------+----------+-------------+--------------+
| COMMAREA | optional | optional | optional | optional |
+--------------+----------+----------+-------------+--------------+
| COMMAREA- | optional | optional | optional | optional |
| LENGTH | | | | |
+--------------+----------+----------+-------------+--------------+
| TIMEOUT | YES | YES | YES | YES |
+--------------+----------+----------+-------------+--------------+
| EXTEND-MODE | YES | YES | YES | YES |
+--------------+----------+----------+-------------+--------------+
| WINDOW-HANDLE| | YES | | YES |
+--------------+----------+----------+-------------+--------------+
| MESSAGE-ID | | YES | | YES |
+--------------+----------+----------+-------------+--------------+
| MESSAGE- | | optional | | optional |
| QUALIFIER | | | | |
+--------------+----------+----------+-------------+--------------+
| LUW-TOKEN | | | YES | YES |
+--------------+----------+----------+-------------+--------------+
EXTERNAL CALL RETURN NOTIFICATION
_________________________________
The possible return codes for a subroutine call to a CICS
OS/2 Version 1.20 program are as follows:
+--------------------------------------------------------+
| Table 2. Return notification for external calls |
+----------------------------+---------------------------+
| MESSAGE | MEANING |
+----------------------------+---------------------------+
| ECI-NO-ERROR | The transaction finished |
| | with no errors |
+----------------------------+---------------------------+
| ECI-ERR-INVALID-DATA-LENGTH| Either a positive user |
| | data length for a null |
| | user data area, or a user |
| | data length of 0 for a |
| | non-null user data area |
+----------------------------+---------------------------+
| ECI-ERR-INVALID-EXTEND-MODE| The ECI-EXTEND-MODE field |
| | contains an invalid value |
+----------------------------+---------------------------+
| ECI-ERR-NO-CICS | CICS OS/2 Version 1.20 is |
| | not running |
+----------------------------+---------------------------+
| ECI-ERR-CICS-DIED | CICS OS/2 Version 1.20 is |
| | no longer running This |
| | error is only possible if |
| | an extended LUW was |
| | outstanding |
+----------------------------+---------------------------+
| ECI-ERR-REQUEST-TIMEOUT | CICS OS/2 Version 1.20 |
| | did not accept the |
| | request within the |
| | time-out period |
| | specified |
+----------------------------+---------------------------+
| ECI-ERR-RESPONSE-TIMEOUT | CICS OS/2 Version 1.20 |
| | accepted the request but |
| | did not finish processing |
| | it within the time-out |
| | period you specified |
+----------------------------+---------------------------+
| ECI-ERR-TRANSACTION-ABEND | CICS OS/2 Version 1.20 |
| | accepted the request but |
| | the transaction abended. |
+----------------------------+---------------------------+
| ECI-ERR-EXEC-NOT-RESIDENT | The program tried to |
| | cancel a previous request |
| | when there was none |
| | outstanding |
+----------------------------+---------------------------+
| NOTE: ECI-ERR-EXEC-NOT-RESIDENT and |
| ECI-ERR-LUW-TOKEN share the same value and are |
| logically equivalent. |
+----------------------------+---------------------------+
| ECI-ERR-LUW-TOKEN | The LUW is outside the |
| | valid range or it is the |
| | wrong LUW token |
+----------------------------+---------------------------+
| ECI-ERR-SYSTEM-ERROR | An internal error |
| | occurred |
+----------------------------+---------------------------+
| ECI-ERR-NULL-WIN-HANDLE | An asynchronous call with |
| | the window handle set to |
| | 0 was specified. |
+----------------------------+---------------------------+
| ECI-ERR-NULL-MESSAGE-ID | An asynchronous call with |
| | the message id set to 0 |
| | was specified. |
+----------------------------+---------------------------+
| ECI-ERR-THREAD-CREATE-ERROR| CICS OS/2 Version 1.20 |
| | failed to create the |
| | thread to process an |
| | asynchronous call |
+----------------------------+---------------------------+
| ECI-ERR-INVALID-CALL-TYPE | The call parameter is |
| | invalid |
+----------------------------+---------------------------+
| ECI-ERR-ALREADY-ACTIVE | Attempt to use more than |
| | one single call at one |
| | time |
+----------------------------+---------------------------+
| ECI-ERR-RESOURCE-SHORTAGE | CICS has no space in the |
| | interval control table |
+----------------------------+---------------------------+
| ECI-ERR-NO-SESSIONS | User is trying to exceed |
| | maximum of 16 calls |
| | within 1 process |
+----------------------------+---------------------------+
CHAPTER 2. TRACE POINT INFORMATION
___________________________________
STANDARD TRACE POINTS AND MESSAGES
__________________________________
The following table lists the standard ECI trace points,
grouped according to the module they reside in.
For each trace point, the following information is given:
TYPE Each trace point belongs to one of these
categories:
MN Entry to a major routine
MX Exit from a major routine
MV Event in a major routine
MO Error in a major routine
RN Entry to a routine
RX Exit from a routine
RV Event in a routine
RO Error in a routine
SN Entry to a section
SX Exit from a section
SV Event in a section
SO Error in a section
The following two types of trace point are
listed whenever trace is set to active in the
CTRA screen.
TV Basic Event (also referred to as
Trace Event)
TO Basic Error (also referred to as
Trace Error)
POINT This identifies the trace point. To give the
full name of a trace point, add the module
number in front of this identifier. For
example, the full name of the first point in
the table is "01A01", the second point is
"01A02", and so on.
ENTRY DESCRIPTION
This briefly describes the trace point.
FIELDS A AND B
This gives the data in fields A and B of the
trace. Not all trace points generate data for
these fields. If the same data is indicated
for both fields, (as for "01F01", for example)
bytes 1 - 4 of the data are given in Field A,
bytes 5 - 8 in Field B.
+---------------------------------------------------------------------------+
| Table 3. FAA trace points. See above for an explanation of the table |
| structure. |
+----------+---------------------+---------------------+--------------------+
| TYPE | ENTRY DESCRIPTION | FIELD A | FIELD B |
| POINT | | | |
+----------+---------------------+---------------------+--------------------+
| 91 | FAACESFE | ECI front end | |
+----------+---------------------+---------------------+--------------------+
| MN F01 | Entry to FAACESFE | Extend mode, Call | Timeout, Commarea |
| | | type | length |
+----------+---------------------+---------------------+--------------------+
| RV F02 | Event ▌ Program name | Program name |
+----------+---------------------+---------------------+--------------------+
| RV F03 | Event | Timeout, Luw token | Transid |
+----------+---------------------+---------------------+--------------------+
| RV F04 | Event | Userid | Userid |
+----------+---------------------+---------------------+--------------------+
| RV F05 | Event - Front end | Low values | Low values |
| | initialisation start| | |
+----------+---------------------+---------------------+--------------------+
| RO F06 | Error registering | Return code | Low values |
| | the exit handler | | |
+----------+---------------------+---------------------+--------------------+
| RO F07 | Error allocating | Return code | Low values |
| | transfer area | | |
+----------+---------------------+---------------------+--------------------+
| RO F08 | Error accessing | Return code | Low values |
| | global infoseg | | |
+----------+---------------------+---------------------+--------------------+
| RV F09 | Event - Front end | Return code | Low values |
| | initialisation | | |
| | complete | | |
+----------+---------------------+---------------------+--------------------+
| RV F10 | Event - Synch call | Return code | Low values |
| | semaphore wakeup | | |
+----------+---------------------+---------------------+--------------------+
| RV F11 | Event - abend code | Return code | Abend code |
| | /return code returned | |
+----------+---------------------+---------------------+--------------------+
| MX F12 | Exit from ECI | Return code | Abend code |
+----------+---------------------+---------------------+--------------------+
| RN F21 | Start | Low values | Low values |
| | initialization of | | |
| | worker thread | | |
+----------+---------------------+---------------------+--------------------+
| RV F22 | Worker thread | Low values | Low values |
| | initialization | | |
| | complete | | |
+----------+---------------------+---------------------+--------------------+
| RV F23 | Recalculated | Timeout for | Low values |
| | timeout | MuxSemWait | |
+----------+---------------------+---------------------+--------------------+
| RV F24 | Worker thread | Return code from | Index of cleared |
| | initialization | async MuxSemWait | semaphore |
| | complete | | |
+----------+---------------------+---------------------+--------------------+
| RV F25 | New async call to | Low values | Low values |
| | wait on | | |
+----------+---------------------+---------------------+--------------------+
| RN F30 | Entry to add to ICE | Low values | Low values |
+----------+---------------------+---------------------+--------------------+
| RX F31 | Exit from add to ICE| Return code | Low values |
+----------+---------------------+---------------------+--------------------+
| RN F40 | Entry to call | Element in work | Absolute timeout |
| | submission | table | |
+----------+---------------------+---------------------+--------------------+
| RX F41 | Exit from call | Return code | Low values |
| | submission | | |
+----------+---------------------+---------------------+--------------------+
| RN F50 | Entry to table | Low values | Low values |
| | search | | |
+----------+---------------------+---------------------+--------------------+
| RX F51 | Exit from table | Return code | Index to table |
| | search | | entry |
+----------+---------------------+---------------------+--------------------+
| 91 | FAAECPBE | ECI back end | |
+----------+---------------------+---------------------+--------------------+
| MN B01 | Entry to FAAECPBE | Low values | Low values |
+----------+---------------------+---------------------+--------------------+
| MX B02 | Error accessing | Return code | Low values |
| | transfer area | | |
+----------+---------------------+---------------------+--------------------+
| RV B03 | Accessed transfer | Call type | Extend mode |
| | area | | |
+----------+---------------------+---------------------+--------------------+
| RV B04 | Front end timed out | Low values | Low values |
+----------+---------------------+---------------------+--------------------+
| RO B05 | Signon abended | Abend code | Low values |
+----------+---------------------+---------------------+--------------------+
| RV B06 | Rollback transaction| Return code | Low values |
+----------+---------------------+---------------------+--------------------+
| RV B07 | Synchpoint trnscton | Low values | Low values |
+----------+---------------------+---------------------+--------------------+
| RV B08 | Synchpoint failed | Abend code | Low values |
+----------+---------------------+---------------------+--------------------+
| MX B09 | Exit from FAAECPBE | Low values | Low values |
+----------+---------------------+---------------------+--------------------+
| SV B10 | Program to call | Program name | Program name |
+----------+---------------------+---------------------+--------------------+
| TYPE | ENTRY DESCRIPTION | FIELD A | FIELD B |
| POINT | | | |
+----------+---------------------+---------------------+--------------------+
| RV B11 | Commit or backout | Low values | Low values |
+----------+---------------------+---------------------+--------------------+
| RO B12 | Error accessing | Return code | Low values |
| | commarea | | |
+----------+---------------------+---------------------+--------------------+
| RO B13 | Transaction abend | Return code | Low values |
+----------+---------------------+---------------------+--------------------+
| RV B14 | Starting extend | Low values | Low values |
| | mode processing | | |
+----------+---------------------+---------------------+--------------------+
| RV B15 | Semaphore woken up | Return code | Index |
+----------+---------------------+---------------------+--------------------+