Dynamic backouts and commit points
During dynamic backout, IMS backs out all database changes made by an application program since its last commit point.
A commit point (or sync point) occurs in a batch or
BMP program when the program issues a CHKP
call.
Commit points for message-driven application programs depend on the
transaction mode (as specified by the MODE
parameter
of the TRANSACT macro).
- Allow IMS to send output messages (replies) earlier
- Reduce the time required for emergency restart and database recovery
- Help avoid storage shortages for locking
- Help avoid reading SLDSs for backout, which decreases performance
Application programs can be batch oriented (non-message-driven
BMPs) and choose when to commit their database changes using the CHKP
call.
ROLB
)
call: - Message-driven application programs that establish a commit point every time they attempt to get an input message
- Non-message-driven batch-oriented application programs
If an application program uses Fast Path resources or an external
subsystem, IMS can issue an internal
rollback call to back out the data to the last commit point. The application
program receives status code FD
as a result of this
call.
ROLB
call: - Backs out and releases locks for all database changes that the program has made since its most recent sync point
- Cancels all output messages since the program's most recent sync point
- Returns the first segment of the first input message since the most recent commit point to the application program, if an input message is still in process at this point, and if the call provides an I/O area
ROLB
processing,
the application program resumes processing from its last commit point.When IMS initiates dynamic backout because of an application program abend, in many cases IMS stops both the transaction and application program. The MTO can restart the transaction or the application program. If you restart the application program before determining the exact cause of the abend, the program can abend again. However, if you restart the transaction, queuing of transactions continues.
- If you restart response-mode transactions, and IMS subsequently enqueues new messages, any terminal entering the transaction is locked because no response is received.
- If you do not restart response-mode transactions, the terminal operator receives a message noting that IMS has stopped the transaction, but the originating terminal is not locked.
- If the transaction is not a response-mode transaction, you can restart it to allow terminal operators to continue entry. However, establish procedures in this case to warn terminal operators that they might not receive a response for some time.
When
an application program abends, IMS issues
message DFS554A
to the master terminal. IMS does not issue this message for MPP regions
when a resource shortage that is not expected to last long (such as
short-term locks) occurs. In this case, IMS backs
out the application program and places the input message back on the
queue for rescheduling. When a BMP abends, IMS always issues message DFS554A
because
the z/OS® operator must restart
BMPs.
Message DFS554A
identifies:
- The application program (PSB) name
- The transaction name
- The system or user completion codes
- The input logical terminal name
- Whether the program or transaction is stopped
IMS also sends message DFS555I
to
the input terminal or master terminal when the application program
abends while processing an input message. This error message means
that IMS has discarded the last
input message the application was processing.
The DFS555I
message contains:
- The system or user completion codes
- Up to the first 78 characters of the input message
- The time and date