Serialization and concurrency


This topic discusses concurrency issues and object status requirements for CHECK PLUS.

Concurrent run of BMC utilities

All BMC utility products use the BMCUTIL to control the use of utility IDs, which identify runs of BMC utilities. Each BMC utility product must have a unique ID for restart purposes. This unique ID is stored in the BMCUTIL. For more information about this, see BMCUTIL-and-BMCUTIL2-tables.

BMC utility jobs register Db2 objects in the BMCSYNC. The registering utility assigns a sharing level to each registered object. The sharing level controls access to that object from other BMC utilities. For partitioned Db2 spaces, registration is performed at the partition level.

The BMCSYNC allows multiple BMC utilities (or multiple instances of a utility) to operate concurrently on different partitions of a Db2 space if no non-partitioning indexes are involved. In addition, some BMC utilities can operate concurrently on the same object or partition.

In the following table, the Access level column refers to the value of the SHRLEVEL column in the BMCSYNC. The level can be one of the values:

  • S indicates shared access. Any other utility that registers with shared access (S) can run against the object.
  • X indicates exclusive access. No other utility can run against the object.
  • Blank value indicates that no status is requested and any other utility can run against the object.

Running BMC utilities concurrently

Product

Access level

Additional information

CHECK PLUS

S

None

BMC AMI Copy

S or blank

If you specify COPY IMAGECOPY, BMC AMI Copy registers the object with no access status (blank). Otherwise, BMC AMI Copy registers the object with shared access (S).

DASD MANAGER PLUS (BMCSTATS)

S

None

LOADPLUS

X

If you specify PART, LOADPLUS registers only the specified partitions with exclusive access (X). If no nonpartitioned indexes exist on the space, you can run other utilities on different partitions while running this job.

BMC AMI Copy

S or blank

If you specify COPY IMAGECOPY, BMC AMI Copy registers the object with no access status (blank). Otherwise, BMC AMI Copy registers the object with shared access (S).

DASD MANAGER PLUS
(BMCSTATS)

S

None

LOADPLUS

X

If you specify PART, LOADPLUS registers only the specified partitions with exclusive access (X). If no nonpartitioned indexes exist in the space, you can run other utilities on different partitions while running this job.

BMC AMI Recover

X, S, or blank

BMC AMI Recover registers an object with shared access (S) under the following conditions:

  • Space for an index is registered with shared access if the index is being rebuilt and its space is not recovered in the same job.
  • Space partition is registered with shared access if the keys for that partition are unloaded with a RECOVER UNLOADKEYS operation.

BMC AMI Recover registers an object with no access status (blank) if you specify the following commands or options:

  • ACCUM command
  • OUTCOPY ONLY
  • INDEP OUTSPACE

BMC AMI Recover registers the object with exclusive access (X) in all other cases.

BMC AMI Recovery Manager

S

None

REORG PLUS

X

If you specify PART, REORG PLUS registers only the specified partitions with exclusive access (X). If no nonpartitioned indexes exist on the space, you can run other utilities on different partitions while running this job.

UNLOAD PLUS

S

None


Warning

Do not run an IBM utility that attempts to manipulate data within the same objects on which a BMC utility is currently processing.

The setting of the LOCKROW installation option determines whether CHECK PLUS uses IBM MVS enqueues or SQL LOCK statements to serialize the BMCSYNC and BMCUTIL s. For information about the LOCKROW option, see Customizing-after-installation.

Object status

The database that is associated with the objects that are participating in the check must have an initial status of read/write (RW). Any space or index space that is participating in the check must have an initial status of RW, read-only (RO), or utility-only (UT). Index spaces cannot be in any of the following statuses:

  • Auxiliary warning (AUXW)
  • DBET error (DBETE)
  • Group RECOVER pending (GRECP)
  • Logical page list (LPL)
  • Page set REBUILD pending (PSRBD)
  • REBUILD pending (RBDP)
  • Logical part REBUILD pending (RBDP*)
  • (BMC.DB2.SPE2501)REBUILD pending empty (RBDPM)
  • RECOVER pending (RECP)
  • Refresh pending (REFP)
  • REORG pending (REORP)
  • Restart pending (RESTP)
  • Utility restrictive state, utility exclusive control (UTUT)
  • Write error page range (WEPR)

At the beginning of the CHECK phase, CHECK PLUS first obtains locks on the appropriates to prevent updates to the index spaces. CHECK PLUS then externalizes those spaces’ pages from the buffer pool.

For SHRLEVEL REFERENCE (the default), CHECK PLUS releases the locks at the end of the CHECK phase after check processing is complete. For SHRLEVEL CHANGE, CHECK PLUS releases the locks before check processing begins in the CHECK phase.

Important

  • If the space is in both COPY and CHKP statuses, the COPY status remains unchanged after processing, and CHECK PLUS issues the message BMC50386W.
  • CHECK PLUS does not check auxiliary s or the relationships between auxiliary s and the LOB identifiers in the base s. Therefore, if a space is in auxiliary CHECK pending (ACHKP) status before processing, CHECK PLUS does not change the status after processing.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*