ROLB call
The Rollback (ROLB) call backs out messages
sent by the application program.
Format
| Call Name | DB/DC | DBCTL | DCCTL | DB Batch | TM Batch |
|---|---|---|---|---|---|
| ROLB | X | X | X | X | X |
Parameters
- i/o pcb
- Specifies the I/O PCB, the first PCB address in the list passed to the program. This parameter is an input and output parameter.
- aib
- Specifies the application interface block (AIB) that is used for
the call. This parameter is an input and output parameter. The following fields must be initialized in the AIB:
- AIBID
- Eye catcher. This 8-byte field must contain DFSAIBbb.
- AIBLEN
- AIB lengths. This field must contain the actual length of the AIB that the application program obtained.
- AIBRSNM1
- Resource name. This 8-byte, left-justified field must contain the PCB name IOPCBbbb.
- AIBOALEN
- I/O area length. This field must contain the length of the I/O area that is specified in the call list.
- i/o area
- An output parameter that specifies the area in your program to
which IMS TM returns the first
message segment. For conversational transactions the SPA will be the
first item returned to the application. Your next
GNcall will then return the first user segment of the message.
Usage
Issuing a ROLB in
a conversational program causes IMS TM
to back out the messages that the application program has sent. If
the program issues a ROLB call and then reaches a
commit point without sending the required response to the originating
terminal, IMS TM terminates the
conversation and sends the message DFS2171I NO RESPONSE CONVERSATION
TERMINATED to the originating terminal.
If your application
program has allocated resources that IMS TM
cannot roll back, the resources are ignored. For example, if your
application program issues CPI-C verbs to allocate resources (for
modified DL/I or CPI-C driven programs), ROLB only
affects those resources allocated by IMS.
Your application must notify any CPI-C conversations that a ROLB call
was issued.
For CPI-C driven application programs, all messages
inserted to nonexpress alternate PCBs are discarded. Messages inserted
to express alternate PCBs are discarded if the PURG call
was not issued against the PCB before the ROLB call
was issued.
Any application program that uses Spool API functions
and creates print data sets can issue the ROLB call.
This backs out any print data sets that have not been released to
JES.
The following processing considerations apply to modified message-driven IMS applications issuing the IMS ROLB call that can receive protected input messages from OTMA or APPC/MVS and issue outbound protected work to other z/OS® Resource Recovery Services (RRS) resource managers:
- If a modified message-driven IMS application program with protected input issues a ROLB call, the ROLB call is isolated to the IMS application without affecting the entire protected unit of work. After the ROLB call is issued, the protected input message remains in process for the IMS application until a commit point is reached.
- If a modified message-driven IMS application program issues an outbound protected conversation, the outbound protected conversation is not included in the ROLB processing (that is, the outbound protected conversation is not backed out as part of the ROLB call). The modified message-driven IMS application program is responsible for explicitly cleaning up any outbound protected work to be backed out.
Restrictions
The AIB must specify the I/O PCB for this call.
