HP 3000 Manuals

Run-Time TurboIMAGE/XL Control Blocks [ TurboIMAGE/XL Database Management System Reference Manual ] MPE/iX 5.0 Documentation


TurboIMAGE/XL Database Management System Reference Manual

Run-Time TurboIMAGE/XL Control Blocks 

As mentioned in chapter 4, TurboIMAGE/XL uses control blocks resident in
privileged mapped files to provide and control user access to a database
through the TurboIMAGE/XL procedures.  The contents of these control
blocks are maintained by TurboIMAGE/XL. Although it is not necessary to
know the details in order to use the TurboIMAGE/XL procedures, the
following descriptions are provided for those who prefer to understand
the control blocks and their functions.

Local Database Access 

The following five structures are involved in local database access:

   *   Database System Control Block (DBS)--Contains pointers to all of
       the DBGs on the system.

   *   Database Globals Control Block (DBG)--Contains global information
       required during run-time and space for DBLOCK's lock descriptors.
       The DBG also contains a pointer to the DBB and pointers to the
       DBUs.

   *   Database Buffer Area Control Block (DBB)--Contains a set of
       addresses and temporary locks used to coordinate access to the
       data set, a set of buffer headers, and a pointer to the DBG.

   *   Database User Local Control Block (DBU)--Contains information
       pertaining to each access path (each DBOPEN) to the database.  The
       DBU also contains pointers to the DBG, DBB, and DBS.

   *   Database User Local Index Control Block (DBUX)--Contains the
       addresses of all the DBUs and DBRs (Remote Database Control
       Blocks) belonging to a specific process.  The DBUX also contains
       dynamic roll-back information.

The DBS is a permanent file 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 reinitialized after a system abort.  Each
system has only one DBS; it contains pointers to the current DBGs for any
currently open database(s).

Both the DBG and the DBB are created when the first user opens a database
(DBOPEN). They remain allocated until the last user closes the database.
Each opened database has only one DBB and one DBG, regardless of the
number of users.  Both of these control blocks are part of a permanent
mapped file called dbnameGB located in the same group and 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 the DBG, the DBB, and the specific user's DBU for that database. Remote Database Access TurboIMAGE/XL provides the capability of accessing a database on a remote HP 3000 system from a user program running on the local HP 3000 system, as described in chapter 9. This capability is provided in conjunction with NS3000/XL and is accomplished by transmitting TurboIMAGE/XL database access requests (DBGET, DBPUT, and so forth) to the remote computer where they are executed and the results returned to the local calling process. The control block structures used by TurboIMAGE/XL for the remote computer which contains the database are those described in the preceding section. On the local computer running the user application program, TurboIMAGE/XL constructs and uses a structure called the Remote Database Control Block (DBR). One DBR is created each time a user's process issues a DBOPEN accessing a remote TurboIMAGE/XL database (each access path to a remote database); this DBR is released when the corresponding DBCLOSE is issued. The DBR resides in a privileged, unnamed temporary file associated with the user application process on the local computer, and contains database, set, and item information plus the work areas necessary to set up communication with the remote computer. Returned data and status information is also processed in the DBR and is transferred to the appropriate user stack areas before TurboIMAGE/XL returns to the local calling process. Access to a TurboIMAGE/V database from an MPE/iX system or access to a TurboIMAGE/XL database from an MPE V system is allowed provided both systems are configured with Network Services (NS3000). To access an IMAGE/3000 database, an MPE V system (with NS/3000 and TurboIMAGE/V) acting as an intermediary is required. However, if the limits on the remote database exceed those allowed on the local system, access will not be successful. This is because the DBR will be too small to handle remote capacities that exceed the local limits. Control Block Sizes It is not necessary to predict the exact length of the control blocks used by TurboIMAGE/XL to manage user accesses to databases. However, the exact length of the DBU and the exact current length of the DBG are returned in the status array by DBOPEN. These lengths can be truncated to 32767 if the control block is greater than 32767.


MPE/iX 5.0 Documentation