When you change non-recoverable resources, such as serial files on Windows 2000, that change is relatively permanent; neither your code nor EGL runtime services can rescind the changes without notice. When you change recoverable resources, such as databases, your code or EGL runtime services can either commit the changes to make them permanent or roll back the changes to return to content that was in effect the last time changes were committed.
If the program runs in a transactional environment (CICS, IMS, or iSeries®), EGL issues an environment commit that performs a two-phase commit coordinated across all resource managers and across all programs in the run unit. In non-transactional environments, EGL performs a single phase commit that calls each recoverable resource manager separately.
ELARMIOP NLS=ENU,EOF=N,SCFOLD=Y,IMSESA=N,SEGMSG=N, X
MSGTRN=ELAE,TRBUF=64,TSQUE=32,RRSAF=Y
Additional details are in the DB2 RRSAF documentation.
Additional details are in the DB2 RRSAF documentation.
Platform | Issue |
---|---|
Java™ generation |
|
CICS | In a CICS run
unit, only one DB2 UDB database
is available at a time; automatic processing occurs in the following
manner:
A commit occurs in the following cases, which are related
to DL/I processing:
|
IMS BMP | sysLib.commit() is
ignored for transaction-oriented BMP programs in which the program
uses a get next statement to read a serial
file that is associated with the I/O PCB. For these programs, the
system performs the commit in any of the following conditions:
GSAM files are not recoverable when used with basic CHKP. To make GSAM files recoverable, use dliLib.AIBTDLI(), dliLib.EGLTDLI(), or vgLib.VGTDLI() for symbolic checkpoint instead of sysLib.commit(). |
IMS/VS | sysLib.commit() is
ignored. Commit processing only occurs at the following implicit commit
points:
In relation to the logical unit
of work, an explicit checkpoint command (CHXP) causes a get unique
(GU) call to the I/O PCB, which in turn causes a commit. The following
warnings apply:
|
iSeries COBOL | An implicit commit is issued in the following
situations:
If the program has issued SQL requests, invoking a sysLib.commit() results in an SQL COMMIT WORK statement. If the program has not issued SQL requests, invoking a sysLib.commit() results in the equivalent of an iSeries COMMIT command. |
z/OS batch | If the program does not specify a PSB but has issued SQL requests, invoking sysLib.commit() results in an SQL COMMIT WORK statement. If the program has a PSB specified, invoking sysLib.commit() results in a DL/I basic CHKP call, which commits changes to all databases. The contents of the dliLib.psbData.psbName structure act as the checkpoint identifier on the CHKP call. GSAM files are not recoverable when used with basic CHKP. To make GSAM files recoverable, use dliLib.AIBTDLI(), dliLib.EGLTDLI(), or vgLib.VGTDLI() for symbolic checkpoint instead of sysLib.commit(). |