SirSafe enhanced shared DASD enqueueing

From m204wiki
Jump to navigation Jump to search

SirSafe enhances the shared DASD enqueue mechanisms of Model 204 to better exploit Sysplex and multiple LPAR environments. The SIRENQ stand-alone utility allows members of a Sysplex or GRS ring to "see" each other, providing automatic recovery from a variety of shared DASD enqueueing conflicts that arise when Model 204 jobs are scheduled across multiple systems. Extended monitoring and administration facilities within the Model 204 environment simplify administration of Sysplex environments.

Global Resource Serialization (GRS)

Global Resource Serialization (GRS) allows two or more operating system instances to share information about serialized resources. GRS can be used to support ENQ/DEQ serialization between address spaces executing under different instances of an MVS operating system. GRS is mandatory between members of a Sysplex, and it is optional between systems that are not members of the same Sysplex.

Once a GRS ring is established, ENQ/DEQ requests between all members of the ring can be serialized as if the entire ring were a single operating system image. The ENQ/DEQ services accept an argument that specifies the scope of the resource being enqueued:

SYSTEM The current ENQ/DEQ applies just to the current operating system instance. ENQ/DEQ requests with a scope of SYSTEM are not visible to other members of a GRS ring.
SYSTEMS The current ENQ/DEQ applies to the GRS ring of the current system. ENQ/DEQ requests with a scope of SYSTEMS are not considered to be the same as requests with a scope of SYSTEM.

The mutual insulation of the ENQ/DEQ scopes means that all of the Model 204 instances executing on an operating system instance must use the same specification for scope. In practice, this can be very hard to ensure, and errors can compromise file integrity.

Fortunately, a GRSRNLxx parmlib member can be used to override the scope specificationfor ENQ/DEQ requests. This makes it possible for all of the Model 204 file control ENQ/DEQ requests on a system to be promoted from a scope of SYSTEM to a scope of SYSTEMS. This is accomplished by the following entries in a GRSRNLxx member:

RNLDEF RNL(INCL) TYPE(GENERIC) QNAME(IFAMQA) RNLDEF RNL(INCL) TYPE(GENERIC) QNAME(IFAMQB) RNLDEF RNL(INCL) TYPE(GENERIC) QNAME(IFAMQC)

If the entries above are active for a particular instance of MVS, then all of the ENQ/DEQ requests used by Model 204 to serialize database file access will be promoted to the SYSTEMS scope. This guarantees that the current Model 204 logic for shared DASD will continue to work, but in and of itself, the promotion does not extend the functionality.

For more information on creating and maintaining GRS rings and promoting enqueues, refer to the following IBM publications:

  • MVS Authorized Assembler Services Guide
  • MVS Planning: Global Resource Serialization
  • MVS Initialization and Tuning Reference

SIRENQ

The SIRENQ utility is designed to be run as a started task or batch job under all of the MVS instances that can host Model 204 jobs. Its purpose is to let each Model 204 instance determine if it is a member of a Sysplex or GRS ring, and if so, to determine the other members of the ring that are promoting IFAMQx enqueues. Model 204 can then treat all systems so identified as a single system image, performing automatic cleanup of obsolete shared DASD enqueue list entries.

SIRENQ's unified view of Model 204 instances and shared DASD cleanup provides significant benefit to Sysplex and GRS ring members, while it still maintains the usefulness of the current shared DASD approach for other systems (for example, for a monoplex used for testing).

SIRENQ installation and operation is summarized in SirSafe SIRENQ utility.

SIRENQ establishes three special enqueues, each with a scope of SYSTEM:

IFAMQA MODEL204.SIRENQ.smfid IFAMQB MODEL204.SIRENQ.smfid IFAMQC MODEL204.SIRENQ.smfid

Where smfid is the SMF system ID for the current system. SIRENQ then uses the GQSCAN system service to build a list of all MVS instances that have enqueues on these resources with a scope of SYSTEMS. By examining the last portion of the resource name, SIRENQ can determine if the IFAMQx enqueues from other systems will be "visible."

SIRENQ wakes up periodically (default sleep interval is five minutes) to recheck its view of the GRS environment and update its list of other MVS instances running SIRENQ. SIRENQ also produces informational messages to the operator's console when other MVS instances either become visible or cease to be visible.

Modified shared DASD list maintenance

All systems that are "SIRENQ visible" to the current system are considered to be the same system for purposes of deleting obsolete shared DASD enqueue list entries. For example, if a Model 204 instance is running on system V210 with a copy of SIRENQ, and SIRENQ is also running on another GRS ring member with an SMF system ID of Z140, the first instance automatically detects and deletes any obsolete enqueue entries for Z140.

This is possible because the Model 204 instances on V210 know that their ENQ/DEQ calls have been promoted to the SYSTEMS scope, and they also know that the ENQ/DEQ calls on Z140 have been promoted. Further, Model 204 instances on the two systems know that the GRS ring between the two instances is functional.

Note that if a third system is either not in the GRS ring or does not have a copy of SIRENQ active, then any Model 204 instance running on that system will not be able to detect obsolete entries from V210 or Z140, and those systems in turn will not be able to detect obsolete entries from the third system. However, no loss in file integrity will result from sharing files among the three systems.

Controlling shared DASD enqueueing

The AUTHCTL command under SirSafe is enhanced to better support the monitoring and management of shared DASD enqueueing within Model 204.

AUTHCTL VIEW indicates whether enhanced shared DASD enqueueing is active, and if so, it lists the systems that are visible and those that have become invisible:

*** MSIR.0688: SirSafe enhanced shared DASD active on V210 (SIRIJES2) *** MSIR.0689: SirSafe Shared DASD visible system: V210 (SIRIJES2) *** MSIR.0689: SirSafe Shared DASD visible system: + Z140 (SIRIUSZO) *** MSIR.0689: SirSafe Shared DASD visible system: - TEST (SIRITEST)

The above example shows that enhanced shared DASD enqueueing is active for the current system, that the system Z140 has become visible since the last AUTHCTL VIEW or AUTHCTL REFRESH, and the the system TEST was visible but is currently not visible. Note that the eight-character "system name" is shown as well as the older four-character SMF ID for each system.

Suppose that a Model 204 Online being tested under system TEST had several files open when the testing LPAR was reset. Rather than track down all the obsolete shared DASD enqueue list entries and delete them with an ENQCTL command, a second copy of SIRENQ can be run on the V210 system, with an smfid parameter value of TEST. This causes any Model 204 instance on V210 to automatically clear the obsolete entries from TEST. While this second copy of SIRENQ is active, an AUTHCTL VIEW command yields:

*** MSIR.0688: SirSafe enhanced shared DASD active on V210 (SIRIJES2) *** MSIR.0689: SirSafe Shared DASD visible system: Z140 (SIRIUSZO) *** MSIR.0689: SirSafe Shared DASD visible system: TEST (SIRIJES2)

The presence of the system name makes it easy to spot duplicate copies of SIRENQ that were used to facilitate recovery. Note that if the system SIRITEST was restarted and rejoined the Sysplex or GRS ring, then when it's copy of SIRENQ was started, the operator of SIRITEST would receive an error notification indicating that SIRIJES2 was running a spoofing copy of SIRENQ.

Each Model 204 instance maintains its view of visible systems in an efficient manner. You can use the AUTHCTL REFRESH command to cause Model 204 to manually rebuild its view of visible systems:

AUTHCTL REFRESH [CLEAR]

The CLEAR option directs Model 204 to remove from its list any systems that were once visible, but are now invisible (that is, those entries preceded by a minus sign). If a Model 204 instance is started without a copy of SIRENQ running, then an AUTHCTL REFRESH command is required to enable enhanced shared DASD enqueueing.

See also