tableBASE use of MVS Enqueues

In order to protect the integrity of tables stored in tableBASE libraries, tableBASE issues two MVS enqueues, a library enqueue and a table enqueue. The tableBASE software enqueues are issued with a scope of “SYSTEMS”.

The enqueues have a major resource name of “TBLBASE“. For a library enqueue, the minor name consists of the letter “L” followed by the dataset name. For a table enqueue, the minor name consists of the letter “T” followed by the table name and the dataset name. These enqueues are independent of “SYSDSN” enqueues issued by the MVS allocation process, based on DISP=SHR or DISP=OLD.

Two changes for library enqueues were implemented with tableBASE Version 6:

  • Since paged table support was dropped, the paged table enqueue and paged table generation enqueue were dropped.
  • The table enqueue format was changed so that the table name precedes the dataset name instead of following it (this improves the usefulness of diagnostic display techniques which do not display the entire length of the minor name).

The tableBASE library enqueue (minor name “L…”) protects the library directory and space allocation. It is obtained as a shared enqueue whenever the library has to be read. It is obtained as an exclusive enqueue when the library is being updated (for example, during a store (ST) of a table). The enqueue is held only during the operation of a single tableBASE command; it is always released before control is returned to the caller. The scope of “SYSTEMS” protects the library from other tableBASE accesses not only on the local system but also across any other systems in the GRS group.

The tableBASE table enqueue (minor name “T…”) prevents the library copy of a table from being Opened for Write (OW) in more than one TSR. (With prior releases, this protection applied to a specific region, but starting with Version 6 tableBASE R/W VTS-TSRs, any region accessing the VTS-TSR obtains or releases the enqueue on behalf of the VTS-TSR). This enqueue is held across multiple tableBASE calls; it is released only when the table is no longer Open for Write in the TSR (typically released by a CLose or ReLease command for the table). The scope of “SYSTEMS” protects the table from any other attempts to update the library copy of this table not only on the local system, but also across any other systems in the GRS group. Besides OW, commands CG, DG, RN, XT also obtain this enqueue.