DL/I Call
To use the system service function in application programs, use DL/I calls. This appendix describes the system service and transaction management calls that OSI supports.
For detailed information about DL/I calls, refer to IBM IMS Version 7 Application Programming: Transaction Manager. |
1. System Service DL/I Calls
1.1. CHKP (basic)
The basic CHKP call is used to specify a recovery point when an application program applies changes or terminates abnormally.
-
Format
>>-CHKP--+-i/o pcb---+--i/o area-------------------------------><
-
Parameter
Parameter Description i/o pcb
Specifies the IO-PCB that will be sent as the first PCB of the applicable program. This is an input and output parameter.
i/o area
Specifies an 8-byte checkpoint ID as an input parameter.
1.2. CHKP (symbolic)
The symbolic CHKP call is used to specify a recovery point when an application program attempts to apply changes or terminates abnormally. The Extended Restart (XRST) call is used to restart the program that has terminated abnormally. Up to 7 data entries can be saved and restored when a program restarts.
-
Format
>>-CHKP--+-i/o pcb---+--i/o area length--i/o area--+-----------------------+-->< | .-------------------. | | V | | '---area length--area-+-'
-
Parameter
Parameter Description i/o pcb
Specifies the IO-PCB that will be sent as the first PCB of the applicable program. This is an input and output parameter.
i/o area
Specifies an 8-byte checkpoint ID as an input parameter.
area length
Specifies the length of the area as 4 bytes. This is an input parameter.
area
Stores data of the specified area length. This is an input parameter.
1.3. INIT
In IBM mainframe IMS/DC, the INIT call allows an application program to verify the data availability status code by checking the data availability of each DB PCB.
In OSI, an INIT call is used only to set a flag for checking whether the application program has invoked the INIT call.
-
Format
>>-INIT--+-i/o pcb---+--i/o area------------------------------->< '---aib-----'
-
Parameter
Parameter Description i/o pcb
Specifies the IO-PCB that will be sent as the first PCB of the applicable program. This is an input and output parameter.
aib
Specifies the aib as an input and output parameter.
i/o area
Specifies the I/O area that is sufficient for sending segments. This is an input and output parameter.
1.4. INQY
The INQY call is used to request information containing the execution environment, destination type and status, and session status. In OSI, AIBSFUNC can be set to ENVIRON or FIND.
-
Format
>>-INQY--+-aib---+--i/o area-----------------------------------><
-
Parameter
Parameter Description aib
Specifies the aib as an input and output parameter.
i/o area
Specifies the I/O area that is sufficient for sending segments. This is an input and output parameter.
1.4.1. ENVIRON
The ENVIRON subfunction obtains the application’s execution environment information.
-
Output
Type
Length
Value
Description
IMS ID
8
IMS ID.
Release level
4
Currently not supported.
CTL Reg Type
8
Currently not supported.
App Reg Type
8
MPP, BMP
Type of the running application.
Reg ID
4
Currently not supported.
App Pgm Name
8
Name of the running application.
PSB Name
8
Name of the running PSB.
Tran Name
8
Name of the running transaction.
User ID
8
Currently not supported.
Group Name
8
Currently not supported.
Stat Grp Indicator
4
Currently not supported.
Addr of Recovery Token
4
Currently not supported.
Addr of the App Param Str
4
Currently not supported.
Shared Queues Indicator
4
Currently not supported.
User ID of Address Space
8
Currently not supported.
User ID Indicator
1
Currently not supported.
Res. Recov. Serv. Ind.
3
Currently not supported.
catalog enablement indi.
8
Currently not supported.
1.5. LOG
In IBM mainframe IMS/DC, the LOG call is used to store information to the IMS system log.
In OSI, the LOG call stores information in the OFM_OSI_LOG table. Currently, OSI only supports AIB.
-
Format
>>-LOG--+-aib---+------------------------------------------------><
-
Parameter
Parameter Description aib
Specifies the aib as an input and output parameter.
1.6. ROLB
The ROLB call is used by application programs to cancel output messages and database changes.
-
Format
>>-ROLB--+-i/o pcb---+-----------------------------------------><
-
Parameter
Parameter Description i/o pcb
Specifies the IO-PCB that will be sent as the first PCB of the applicable program. This is an input and output parameter.
-
Limitations
-
OSC messages do not support ROLB calls.
-
1.7. SYNC
The SYNC call is used for the application program to commit. It only applies in the BMP program.
-
Format
>>-SYNC--+-i/o pcb---+----------------------------------------->< '-aib-------'
-
Parameter
Parameter Description i/o pcb
Specifies the IO-PCB that will be sent as the first PCB of the applicable program. This is an input and output parameter.
aib
Specifies the aib as an input and output parameter.
1.8. XRST
The XRST call is used to restart application program from a symbolic checkpoint of a previous execution of the program.
-
Format
>>-XRST--+-i/o pcb---+--i/o area length--i/o area--+-----------------------+-->< | .-------------------. | | V | | '---area length--area-+-'
-
Parameter
Parameter Description i/o pcb
Specifies the IO-PCB that will be sent as the first PCB of the applicable program. This is an input and output parameter.
i/o area length
This is an input and output parameter and currently not used
i/o area
Specifies a checkpoint ID as an input parameter.
area length
Specifies the length of the area as 4 bytes. This is an input parameter.
area
Restores data of the specified area length. This is an input and output parameter.
2. Transaction Management DL/I Calls
2.1. CHNG
The CHNG (Change) call is used to change where the message segment is sent. The destination of the modifiable ALT-PCB can be specified with logical terminal, LU 6.2 descriptor, or transaction codes using CHNG call.
-
Format
>>-CHNG--+-alternate pcb-+--destination name-------------------><
-
Parameter
Parameter Description alternate pcb
To use CHNG call, specify the modifiable ALT-PCB as an input and output parameter.
destination name
Specifies the destination of the message segment that will be changed.
2.2. CMD
The CMD call allows application programs to input IMS commands. It can be used with the GCMD call to send commands to the OSI command server and receive responses. It retrieves the first segment of a command response message.
-
Format
>>-CMD--+-i/o pcb-+--i/o area----------------------------------><
-
Parameter
Parameter Description i/o pcb
Specifies the IO-PCB that will be sent as the first PCB of the applicable program. This is an input and output parameter.
i/o area
Specifies the I/O area that is sufficient for sending segments. This is an input and output parameter.
2.3. GCMD
The GCMD call retrieves the subsequent segment of a command response message processed by a CMD call.
-
Format
>>-GCMD--+-i/o pcb-+--i/o area---------------------------------><
-
Parameter
Parameter Description i/o pcb
Specifies the IO-PCB that will be sent as the first PCB of the applicable program. This is an input and output parameter.
i/o area
Specifies the I/O area that is sufficient for sending segments. This is an output parameter.
2.4. GN
When an input message contains more than one segment, a GU call retrieves the first segment of the message and a GN call retrieves the subsequent segments.
-
Format
>>-GN--+-i/o pcb-+--i/o area-----------------------------------><
-
Parameter
Parameter Description i/o pcb
Specifies the IO-PCB that will be sent as the first PCB of the applicable program. This is an input and output parameter.
i/o area
Specifies the I/O area that is sufficient for sending segments. This is an output parameter.
2.5. GU
The GU call retrieves the first segment of a message.
-
Format
>>-GU--+-i/o pcb-+--i/o area-----------------------------------><
-
Parameter
Parameter Description i/o pcb
Specifies the IO-PCB that will be sent as the first PCB of the applicable program. This is an input and output parameter.
i/o area
Specifies the I/O area that is sufficient for sending segments. This is an output parameter.
2.6. ISRT
The ISRT call is used to send a message segment to a specific destination. The destination is specified by IO-PCB and alternate PCB.
-
Format
>>-ISRT--+-i/o pcb-------+--i/o area--+----------+------------->< '-alternate pcb-' '-mod name-'
-
Parameter
Parameter Description i/o pcb
Specifies the IO-PCB that will be sent as the first PCB of the applicable program. This is an input and output parameter.
alternate pcb
Specifies the PCB as an input and output parameter.
i/o area
Specifies the I/O area that is sufficient for sending segments. This is an output parameter.
mod name
Specifies the MOD name as an 8-byte input parameter for sending output messages. The output message is formatted according to the specified MOD.
2.7. PURG
The PURG call is used to output message segments sent by the ISRT call. When more than one message segments are sent in application programs, it is used to purge the previous messages or complete sending a message.
-
Format
>>-PURG--+-i/o pcb-------+--+------------------------+--------->< '-alternate pcb-' '-i/o area--+----------+-' '-mod name-'
-
Parameter
Parameter Description i/o pcb
Specifies the IO-PCB that will be sent as the first PCB of the applicable program. This is an input and output parameter.
alternate pcb
Specifies the PCB as an input and output parameter.
i/o area
Specifies the I/O area that is sufficient for sending segments. This is an output parameter.
mod name
Specifies the MOD name as an 8-byte input parameter for sending output messages. The output message is formatted according to the specified MOD.
The PURG call specifies the MOD name for the first segment of the output message.