Comparison of ROLB, ROLL, and ROLS

The following table provides a comparison of the ROLB, ROLL, and ROLS calls.

Table 1. Comparison of ROLB, ROLL, and ROLS
Actions taken ROLB ROLL ROLS
Back out database updates since the last commit point. X X X
Cancel output messages created since the last commit point. X1 X1 X1
Delete the message in process from the queue. Previous messages (if any) processed since the last commit point are returned to the queue to be reprocessed.   X  
Return the first segment of the first input message since the most recent commit point. X2    
3303 abnormal termination and returns the processed input messages to the message queue.     X3
778 abnormal termination, no dump.   X  
No abend; program continues processing. X    
Notes:
  1. ROLB, ROLL, or ROLS cancel output messages sent with an express PCB unless the program issued a PURG.
    For example, if the program issues the following call sequence, MSG1 would be sent to its destination because the PURG tells IMS that MSG1 is complete and the I/O area now contains the first segment of the next message (which in this example is MSG2). MSG2, however, would be canceled:
    ISRT    EXPRESS PCB, MSG1
    PURG    EXPRESS PCB, MSG2
    ROLB    I/O PCB

    Because IMS has the complete message (MSG1) and because an express PCB is being used, the message can be sent before a commit point.

  2. Returned only if you supply the address of an I/O area as one of the call parameters.
  3. The transaction is suspended and requeued for subsequent processing.