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 10 491
Internal Structures and Techniques
Run-Time TurboIMAGE/XL Control Blocks
account as the database.
NOTE
If you have an existing file with the same name that TurboIMAGE/XL would
assign to the permanent mapped file (that is, dbnameGB), you will get the
following message for status code −9:
CANNOT CREATE DBG : MPE ERROR <
nnn
>
The DBG is derived mostly from the root file and contains global information required by
TurboIMAGE/XL intrinsics during run-time. In addition, the DBG contains the lock table
which holds user-level locking information. The DBG is used as a reference area for global
data and lock information.
The DBB is used to retrieve, log, and update data located within the data sets. It contains
a set of buffer headers which are shared by all concurrent users accessing the database.
These buffer headers contain information about data set blocks. The DBB also contains
information pertaining to logging and recovery.
A two-level resource priority locking scheme is used within the DBB to allow single data
block operations to access the control block concurrently. This involves DBGET, DBFIND and
DBUPDATE processes. DBPUT and DBDELETE operations, and DBUPDATE operations on detail
data set search or sort items made possible through the critical item update (CIUPDATE)
option, are unable to access the data blocks concurrently with other DBPUTs, DBDELETEs,
and search or sort item DBUPDATEs. These block put-delete lock operations must hold a
global lock on the DBB throughout part of the operation; therefore, there is less
concurrency when using DBPUT and DBDELETE and when using DBUPDATE on search or sort
items via the CIUPDATE option. When you update a search or sort item value, you get the
same net effect as performing a DBDELETE and DBPUT.
One DBU is created and stored in a privileged, unnamed temporary file each time a user
issues a DBOPEN, and remains allocated until the corresponding DBCLOSE is issued. The
DBU contains information pertaining to the user's individual access to the database. This
includes information about the user's access mode, record position, list specifications, and
security table. All TurboIMAGE/XL intrinsics process on the DBU, except accesses for
global and buffer area information found in the DBG and DBB.
The DBUX is created and stored in a privileged, unnamed temporary file the first time the
user's process calls DBOPEN. One DBUX exists for each process. Its purpose is to keep track
of the addresses of all the DBUs belonging to that process. Because 127 entries are allowed
in the DBUX, each process is allowed a maximum of 127 DBOPENs (63 per database)
depending on the availability of system resources. The DBUX remains allocated until the
user's process is terminated.
When accessing a local database, the TurboIMAGE/XL procedures usually make use of,
and can modify information in all of the control blocks.
The TURBOLKT is a permanent file, TURBOLKT.PUB.SYS, that is created by DBOPEN (if it does
not exist beforehand). Thereafter, it is opened when the first user opens any database on
the system. It is purged when the system is rebooted. Each system has only one TURBOLKT
file. It is used to avoid deadlocks for all IMAGE/SQL users. Additionally, it is also used to
detect potential deadlock for TurboIMAGE/XL users if, and only if, deadlock detection is
activated by DBCONTROL mode 7.