Control Blocks [ TurboIMAGE/XL Database Management System Reference Manual ] MPE/iX 5.0 Documentation
TurboIMAGE/XL Database Management System Reference Manual
Control Blocks
Run-time control blocks are created differently on MPE/iX. Also, a new
control block called the Database User Local Index (DBUX), which is
unique to each process, has been added.
Major Differences
Run-time control blocks are no longer created as privileged extra data
segments. Instead, on MPE/iX privileged mapped files are used. If an
error occurs when MPE/iX opens a mapped file, the following error is
returned for status code -9:
CANNOT CREATE controlblockname: FILE SYSTEM ERROR nn
where controlblockname is one of the following:
DBS
DBG
DBU
DBR
DBUX
and nn is the number of the file system error. Refer to "Local Database
Access" in Chapter 10.
Specifically, control blocks are created as follows:
* The Database System Control Block (DBS) is stored in a permanent
mapped file called TURBODBS.PUB.SYS. It is created as a permanent
file and is unique to a system. DBOPEN creates it if it does not
exist and resets it after a system abort.
* The Database Globals Control Block (DBG) and the Database Buffer
Area Control Block (DBB) are stored in a permanent mapped file
called DatabaseNameGB which resides in the same group and account
as the database. DatabaseNameGB is created when the first user
opens the database and purged when the last user exits.
* Each Database User Local Control Block (DBU) is stored in an
unnamed/new mapped file. A DBU is created each time a user does a
DBOPEN for local database access.
* Each Database Remote Control Block (DBR) is stored in an
unnamed/new mapped file. A DBR is created each time a user does a
DBOPEN for remote database access.
* The Database User Local Index Control Block (DBUX) is a new
run-time control block stored in an unnamed/new mapped file. One
DBUX is created per process. The database ID number serves as an
index into the DBUX and points to the virtual addresses of all
current DBU/DBRs belonging to that process. 127 entries are
allowed, meaning that each user (process) is allowed 127 DBOPENs
(63 per database). Refer to the discussion of DBOPEN in Chapter 5
for additional information. If the DBUX is full and the user
attempts to open another database, the following error is
displayed for status code -198:
TOTAL DBOPEN COUNT PER USER EXCEEDS LIMIT OF 127
MPE/iX 5.0 Documentation