Every SMP/E command needs access to the global zone. Some commands
also require access to one or more other zones. In addition, commands
may need different types of access. For example, LIST only reads data
and can, therefore, share it with other LIST jobs. On the other hand,
APPLY actually updates the target zone, and, therefore, needs exclusive
use of that data set to ensure data set integrity.
To meet the needs of all the commands, SMP/E supports three types
of access:
- Read access with no control of the zone
This
access is required primarily during initialization for each command.
For example, SMP/E might check the ZONEINDEX entries in the global
zone to obtain the data set name for the target zone for the APPLY
command. With this type of access, however, the data in the zone can
be changed while SMP/E is checking it.
For this type of access
no enqueue is issued. It is, therefore, called read
without enqueue.
- Read access with shared control of the zone
This access is required during certain phases of processing to ensure
that the data being checked is not being changed by another command.
For example, when selecting SYSMODs to be applied, SMP/E must ensure
that SYSMODs are not being received or rejected at the same time.
To gain this type of access, SMP/E issues a shared enqueue on the
data set where the zone resides. This type of access is called read with shared enqueue.
- Update access with exclusive control of the zone
This access is required when the zone may be updated during command
processing (as the target zone is during APPLY).
To gain this
type of access, SMP/E issues an exclusive enqueue on the data set
where the zone resides.
This type of access is called update with exclusive enqueue.