Intrinsic Level Recovery [ TurboIMAGE/XL Database Management System Reference Manual ] MPE/iX 5.0 Documentation
TurboIMAGE/XL Database Management System Reference Manual
Intrinsic Level Recovery
Intrinsic Level Recovery (ILR) is not required to protect the structural
integrity of the database, because in default recovery mode TurboIMAGE/XL
takes advantage of an internal MPE/iX file system service, called
Transaction Management (XM), to provide intrinsic level backup and
recovery. Unless AUTODEFER is enabled, all intrinsics that modify the
database (DBPUTs, DBDELETEs, and DBUPDATEs) are written to XM log file
pages by MPE/iX. In default recovery mode, XM log file pages are only
written to disk when one of the following occurs:
* A system-specified time has elapsed.
* A request is made by a subsystem, such as TurboIMAGE/XL, to flush
the XM log file to disk (for example, ILR is enabled, or DBEND
mode 2 is specified and logging is enabled).
* The XM buffer is full.
Thus, intrinsics that have completed may not yet be written to disk. If
a system failure occurs, only intrinsics that have been written to disk
are recovered. When recovery is necessary, it must be performed at
system startup time before anyone modifies the database.
ILR also uses the MPE/iX Transaction Management service. When ILR is
enabled, XM log file pages are written to disk at the end of each
completed DBDELETE and DBPUT. If a system failure occurs, at most only
one DBPUT or DBDELETE is not recovered. (Note that a completed DBUPDATE
does not force a XM log write to disk.) Because of these differences in
implementation, ILR on TurboIMAGE/V is not completely compatible with ILR
on TurboIMAGE/XL.
ILR does have performance implications. Therefore, you may wish to
reevaluate your use of ILR with TurboIMAGE/XL. ILR is no longer necessary
to ensure the structural integrity of the database. However, if your
data is not easily recoverable (information taken over the telephone, for
example) you may wish to use ILR because at most only one intrinsic can
be lost.
NOTE Before moving TurboIMAGE/V databases to MPE/iX, it is recommended
that ILR be disabled. If it is not, TurboIMAGE/XL assumes you want
ILR to remain enabled.
Major Differences
* ILR is performed by MPE/iX Transaction Management. As a result,
the ILR file DatabaseName00 does not exist. All transactions are
logged to the MPE/iX Transaction Management log file.
* ILR is not required to protect the structural integrity of the
database.
* ILR is not required for roll-back recovery.
* DBUPDATE is included with DBPUT and DBDELETE in Intrinsic Level
Recovery. However, completed DBUPDATEs are not guaranteed to be
committed to the log file for recovery.
* On TurboIMAGE/XL, only completed DBPUTs and DBDELETEs are
recovered by ILR if the database was enabled for ILR. If these
intrinsics are interrupted by a system failure or other abnormal
termination, they are not recovered. On TurboIMAGE/V, if the
database is enabled for ILR, the last DBPUT or DBDELETE, which was
interrupted by a system failure or other abnormal termination,
will be completed.
* When recovery is necessary, it must be performed at system startup
time before anyone modifies the database. This can cause a
slightly longer startup time. (If a program accessing a
TurboIMAGE/XL database aborts during the execution of an
intrinsic, the incomplete intrinsic will be undone.)
* On TurboIMAGE/XL, DBINFO mode 402 does not return information
about whether or not ILR recovery has been done on the last DBPUT
or DBDELETE. (Because database recovery is now performed at system
startup time, this information is not available.)
Table H-2 compares DBINFO mode 402 on TurboIMAGE/V with DBINFO
mode 402 on TurboIMAGE/XL.
Table H-2. DBINFO Mode 402 Changes
-----------------------------------------------------------------------------------------------
| | | |
| Element | TurboIMAGE/V | TurboIMAGE/XL |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 1 | ILR log flag: 1 if enabled; 0 if not | No change. |
| | enabled. | |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 2 | Calendar date ILR was enabled. | No change. |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 3, 4 | Clock time ILR was enabled. | No change. |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 5 | 1 if ILR used; 0 if ILR not used. | Always 0. |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 6 | P if DBPUT; D if DBDELETE; otherwise blank. | Always blank. |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 7-14 | Data set name, when ILR used; otherwise | Always blank. |
| | blank. | |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 15-16 | Reserved. | No change. |
| | | |
-----------------------------------------------------------------------------------------------
MPE/iX 5.0 Documentation