ROLB call

The Rollback (ROLB) call backs out messages sent by the application program.

Format

Read syntax diagramSkip visual syntax diagramROLBi/o pcbaibi/o area
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 GN call 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.