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

482 Chapter10
Internal Structures and Techniques
Dynamic Data Set Expansion
Dynamic Data Set Expansion
The capacity of non-jumbo (less than or equal to 4 GB in size) master and detail data sets
can be expanded dynamically during DBPUT, or implied DBPUT for automatic master. The
expansion can occur only if the data set is enabled for dynamic expansion, that is, if the
required capacity parameters are set prior to the expansion.
The capacity parameters are:
• maximum capacity
is a required parameter and is a maximum number of entries the data set can contain.
It must be less than or equal to 2
31
−1 (2,147,483,647). The maximum capacity both for
masters and details is adjusted by TurboIMAGE/XL to represent an even multiple of
the blocking factor.
• initial capacity
is a required parameter and is the initial capacity for the data set, that is, the number
of entries for which space will be allocated and initialized when the data set is created.
For a master data set, this is also the primary or hashing capacity. This number must
be between 1 and 2
31
−1 inclusive but must be less than or equal to the maximum
capacity. This parameter should be used to closely approximate the current volume of
data. If it is very low, there can be frequent expansions leading to severe disk
fragmentation. If initial capacity is not specified, or if initial capacity is either zero or
equal to the maximum capacity, then dynamic capacity expansion is not enabled for the
data set, and maximum capacity is used for the data set file creation.
• increment
is an optional parameter and is either the number of entries or the percentage of the
initial capacity by which the data set will be expanded each time its initialized space is
exhausted. If a percentage is used, the percent sign (%) must follow the incremental
amount. This increment parameter can only be used if the initial capacity parameter is
also specified. This number must be 1 to 32767 inclusive for percent, or 1 to 2
31
−1
(2,147,483,647) inclusive for number of entries. If it is very low, there can be frequent
expansions leading to severe disk fragmentation. If it is very high, DBPUT may take a
long time to complete which could impact other database users.
The number of entries defined, or the entries calculated from the percent, cannot exceed
the maximum entry count minus the initial allocation. That is, the expansion must not
result in exceeding the maximum capacity. If the increment is not specified for the data
set, or is zero, but the initial capacity is greater than zero, then the increment for each
expansion is defaulted to ten percent (10%) of the initial capacity for the data set. If the
initial capacity is equal to the maximum capacity, or the initial capacity is zero, then
this indicates the data set cannot be expanded and increment is ignored.
In brief, a data set is enabled for dynamic expansion when both are true:
• Both maximum capacity and initial capacity are specified
• Initial capacity is neither zero nor equal to the maximum capacity