TurboIMAGE/XL Database Management System Reference Manual (30391-90012)
Table Of Contents
- 1 Introduction
- 2 Database Structure and Protection
- 3 Defining a Database
- 4 Using the Database
- 5 TurboIMAGE/XL Library Procedures
- Using TurboIMAGE/XL Intrinsics
- DBBEGIN
- DBCLOSE
- DBCONTROL
- DBDELETE
- DBEND
- DBERROR
- DBEXPLAIN
- DBFIND
- DBGET
- DBINFO
- INTRINSIC NUMBER 402
- Syntax
- Parameters
- Discussion
- Mode 101: Item Number
- Mode 102: Item Name
- Mode 103: Items in Database
- Mode 104: Items in Data Set
- Mode 113: BTREEMODE1 and Wildcard Character
- Mode 201: Set Number
- Mode 202: Set Name
- Mode 203: Sets in Database
- Mode 204: Sets with Item
- Mode 205: Set Capacity
- Mode 206: Number of Data Set Chunks
- Mode 207: Size of Data Set Chunks
- Mode 208: Primary and Actual Capacity
- Mode 209: B-Tree Attachment
- Mode 301: Paths
- Mode 302: Key or Search Item
- Mode 401: Logging
- Mode 402: ILR
- Mode 403: Dynamic Roll-Back
- Mode 404: Logging Subsystem Information
- Mode 406: Database Information
- Mode 501: Subsystem Access
- Mode 502: Critical Item Update
- Modes 8nn: Third-Party Indexing
- Mode 901: Language
- DBLOCK
- DBMEMO
- DBOPEN
- DBPUT
- DBUNLOCK
- DBUPDATE
- DBXBEGIN
- DBXEND
- DBXUNDO
- 6 Host Language Access
- Model Program
- ORDERS Database Model Program
- Main Body of Program
- Opening the Database
- Retrieving All the Records on a Chain (with Item Level Locking)
- Retrieving a Data Entry Using a Record Number
- Retrieving Master Data Using a Key Value
- Retrieving Data Serially (with Set Level Locking)
- Adding an Entry
- Updating an Entry
- Deleting an Entry
- Rewinding a Data Set
- Obtaining Database Information
- Obtaining Error Messages and Explanations
- Closing the Database
- C
- COBOL II
- Defining Data Types, Variables, and Intrinsics
- Main Body of Program
- Opening the Database
- Retrieving All the Records on a Chain (with Item Level Locking)
- Retrieving a Data Entry Using a Record Number
- Retrieving Master Data Using a Key Value
- Retrieving Data Serially (with Set Level Locking)
- Adding an Entry
- Updating an Entry
- Deleting an Entry
- Rewinding a Data Set
- Obtaining Database Information
- Obtaining Error Messages and Explanations
- Closing the Database
- FORTRAN 77
- Pascal
- RPG
- 7 Logging and Recovery
- Database Utilities Used in Logging and Recovery
- Recovery Options
- Logical Transactions
- Dynamic Roll-Back Recovery
- Intrinsic Level Recovery
- Logging Preparation
- Step 1--Checking MPE/iX Logging Configuration
- Step 2--Acquiring Logging Capability
- Step 3--Logging to Tape or Disk
- Step 4--Building a Log File for Logging to Disk
- Step 5--Creating the Log Identifier
- Step 6--Setting the Log Identifier
- Step 7--Setting Flags for the Database Backup Copy
- Step 8--Making a Database Backup Copy
- TurboSTORE/iX 7x24 True-Online Backup
- Logging Status
- Logging Maintenance
- Roll-Forward Recovery
- Roll-Back Recovery
- DBRECOV Commands Used with Roll-Forward and Roll-Back Recovery
- Recovery Tables
- Post-Recovery Options
- The Mirror Database
- 8 Using the Database Utilities
- Restructuring the Database with TurboIMAGE/XL Utilities
- Summary of Utility Routines
- Utility Program Operation
- DBLOAD
- DBRECOV
- >CONTROL
- >EXIT
- >FILE
- >RECOVER
- >ROLLBACK
- >RUN
- DBRESTOR
- DBSTORE
- DBUNLOAD
- DBUTIL
- >>ACTIVATE
- >>ADDINDEX
- >>CREATE
- >>DEACTIVATE
- >>DETACH
- >>DISABLE
- >>DROPINDEX
- >>ENABLE
- >>ERASE
- >>EXIT
- >>HELP
- >>MOVE
- >>PURGE
- >>REBUILDINDEX
- >>REDO
- >>RELEASE
- >>SECURE
- >>SET
- >>SHOW
- Syntax
- Parameters
- Example (Show Users)
- Example Discussion
- Example (Show All)
- Example Discussion
- Example (Show Capacity)
- Format of Show Device List
- Example (Show Device)
- Format of Show Indices
- Example (Show Indices)
- Format of Show Locks List
- Example 1 (Show Locks)
- Example 1 Discussion
- Example 2 (Show Locks)
- Example 2 Discussion
- >>VERIFY
- 9 Using a Remote Database
- 10 Internal Structures and Techniques
- 11 B-Tree Indices
- A Error Messages
- B Results of Multiple Access
- C Database Design Considerations
- D Multiple Calls to DBLOCK
- E TurboIMAGE/XL Log Record Formats
- F MPE/iX Log Record Formats
- G Recovery and Logging Quick Reference
- H TurboIMAGE/XL versus TurboIMAGE/V

Chapter 7 315
Logging and Recovery
Logical Transactions
Logical Transactions
A Definition
TurboIMAGE/XL logging and recovery (via DBRECOV) provide the ability to restore the
database to a consistent state after a system failure. To understand how this is done, it is
important to understand the concept of a logical transaction. A logical transaction is a
sequence of one or more procedure calls that are considered one logical unit of work. Table
7-1. describes the types of logical transactions: static, multiple database, dynamic, and
dynamic multiple database.
Table 7-1. Types of Logical Transactions
Transaction Definition
Static A logical transaction that begins with a DBBEGIN call and ends with a DBEND call.
A static transaction spans only one database and uses DBBEGIN mode 1 and
DBEND mode 1 or 2.
Multiple
database
A logical transaction that begins with a DBBEGIN mode 3 or 4 call and ends with a
DBEND mode 3 or 4 call. A multiple database transaction (MDBX) spans more
than one database and can be recovered with roll-back or roll-forward recovery.
Programmers may be tempted to call DBBEGIN twice (once for each database),
update both databases, and then call DBEND twice in an attempt to implement
this capability. However, a system failure during the "window" between the two
final calls to DBEND will result in the recovery of the transaction for the first
database and its suppression on the second. To perform a transaction accessing
multiple databases, use a multiple database transaction.
Dynamic A logical transaction that begins with a DBXBEGIN mode 1 call and ends with a
DBXEND mode 1 or 2 call. A dynamic transaction spans only one database. A call
to DBXUNDO or a program abort will cause a dynamic transaction to be rolled back
dynamically. If a system failure occurs, the dynamic transaction will be rolled
back at the first call to DBOPEN for the database after the system is restarted.
However, in the event of a media failure, DBRECOV roll-forward recovery can be
used on dynamic transactions as long as user logging has first been enabled.
Dynamic
multiple
database
A dynamic transaction that spans multiple databases and begins with a
DBXBEGIN mode 3 call and ends with a DBXEND mode 3 call. The total number of
databases then can be included in a dynamic multiple database transaction is 15.
The
baseid
parameter of DBXBEGIN mode 3 includes the number of databases and
their respective base-ids. A call to DBXUNDO or a program abort will cause a DMDBX
to be rolled back dynamically. In essence, modifications to all databases involved
in DMDBX will be rolled back. If a system failure occurs, the dynamic transaction
will be rolled back at the first call to DBOPEN for the databases after the system is
restarted. However, in the event of a media failure, DBRECOV roll-forward recovery
can be used on dynamic transactions as long as user logging has first been
enabled.