The Dynamic Install Facility (DIF) has several TSO command processors used to control and manage products. These commands can be executed from TSO or a batch job. A DIF ISPF command interface for each command is also available.
DIFPOOL The DIFPOOL command has two functions:
- List the names of the device pools used by a product.
- List the devices in a specific pool.
The rules language for a product defines the device pools, and each product uses the device pools differently. For example:
- ACC typically uses device pools to control where a data set is allocated, or which tape device is used by a job.
- SRS uses the pool definitions to select a volume during SRS ADDVOL processing.
- Monitor uses device pools to define volume groups.
DIFVAR The SCC Monitor can create and set variables
that are stored in a VSAM file. These variables are used to communicate with tasks that
perform automation functions. The DIFVAR TSO command can be used to display,
update, and delete the DIF variables used by Monitor.
DIFTSO command allows installations to
issue the DIF console commands from TSO environments. If necessary, the command can even be
executed as a batch job. This interface allows administrators to manage DIF without access to
a console. The DIF ISPF Interface
The DIF ISPF interface provides an easy interface to the DIF TSO commands. The ISPF panels can:
- Issue DIF console commands (
DIFTSO). - Display information about device pools used by SCC products
(
DIFPOOL). - Examine, update, and delete the system variables created by SCC Monitor
(
DIFVARandDIFVARS).
For information about installing the ISPF interface, examine “Step 7 - Install the ISPF Interface” in the Product Installation Guide.
Figure 7-1. The DIF ISPF Interface
DIFPOOL - TSO interface
DIF contains a TSO command processor (DIFPOOL), which
can be used to display information about the ACC, SRS,
and Monitor device pools. This information can be very helpful when
working with the rules language.
In the simplest form, the DIFPOOL command can be used to list the device
pools defined by a product. For example, the following command displays the device pools for
ACC:
DIFPOOL ACC
If a pool name is specified, the devices in the pool definition are listed. For example, the following command can be used to display the devices found in the STRPOOL pool definition in ACC:
DIFPOOL ACC STRPOOL
By default, the DIFPOOL command simply displays the pool definitions or
information about the requested pool name. The command can also be placed in a monitor mode.
The REPEAT parameter can be used to specify the number of iterations, and
the number of seconds between iterations. For example, the following
DIFPOOL command can be used to watch a specific pool for 10 minutes - 20
iterations at 30-second intervals:
DIFPOOL product poolname REPEAT(20 30)
Displaying a list of pool definitions
If the DIFPOOL command is issued without operands, a list of device pools
will be displayed by the command. Please examine the sample screen that follows:
PRDPOOL STRPOOL DISK MAXSPACE FLOAT
Figure 7-2. DIFPOOL - Displaying a List of Pool Definitions
Each device pool displayed by this form of the command will contain:
- The name specified on the
DEFPOOLstatement in the rules language. - The alternate pool name to use when no devices in the current pool are available for the allocation request or space recovery.
- The device type:
TAPEorDISK. - The algorithm used in device selection:
SRM,MAXSPACE, orRESPTIME. - How ACC controls the specific volume request when a user specifies a volume.
CHKPOOL During a specific allocation request, ACC
will allow the specific request only if the volume is within the pool definition. Volumes
outside the current definition, or an alternate pool, will be removed. The allocation will
then be treated as nonspecific, and float within the device pool. CHECKPOOL
is the default for the SPECIFIC parameter on the DEFPOOL
statement.
FLOAT ACC will always remove specific allocation requests when using a pool definition. The nonspecific request will float within the pool definition.
NOFLOAT ACC will never remove specific allocation requests when using a pool definition. If a request does not reside within the pool definition, the allocation request will fail.
- A run-time compare flag (
RTMCP). An expression used to define the pool definition makes use of information that is run-time related.DEFPOOLskipped the evaluation of the expression during pool definition. For example, the percentage of freespace available on a volume can only be evaluated at device selection time. - The RESTRICT field specifies whether the pool definition will
allow non-ACC controlled allocations to use the devices within the pool definition. If
NONEis displayed, non-ACC controlled allocations will be allowed to create data sets on the pool devices.NEWdenies the creation of non-ACC controlled data sets on volumes within the pool definition.ALLdenies all allocation by non-ACC controlled users - even existing data sets cannot be accessed. - The number of devices within the pool definition.
- A
MODE(WARN)flag. If the pool definition is in warning mode, ACC will not actually perform device pooling during allocation.
Displaying devices within a pool definition
When a pool name is provided as an operand to the DIFPOOL command, a list
of devices within the pool will be displayed. The screen below lists the information about a
pool of DASD devices.
If ALL is specified, all the pool definitions and all
the devices are displayed. For example, DIFPOOL ACC ALL requests that all
the definitions be listed.
RESTNEW and RESTALL. These pools are
automatically generated by ACC. RESTNEW displays the volumes that non-ACC
controlled allocations cannot use for data set creation. RESTALL lists the
devices that cannot be accessed by non-ACC controlled allocations. Figure 7-3. DIFPOOL - Displaying Devices in Pools
Each device in the pool definition displays the following information:
- The volume name of the device.
- The control unit address (CUU).
- The ACC Dynapool Name assigned to the device. Note: The dynamic pooling facility is primarily used for TAPE devices. If the
DYNAPOOLconsole command has been used to reserve the device, only pool definitions using theDYNAPOOLexpression can access this device. -
DISK ONLY - the current space information:
- FCYL: number of free cylinders on the volume
- FTRK: number of free tracks not associated with free cylinders
- FEXT: number of freespace extents on the volume
- LCYL: largest cylinder extent on the volume
- LTRK: largest track extent on the volume
- NCYL: total number of cylinders on the volume
- %FREE: percent freespace on the volume
- RSPTIME: response time in milliseconds (MS) over the performance window. The performance window defaults to the previous 5 minutes. For more information, examine “The KEEPAWAY Volume Selection Parameter” on page 4-39.
DIFPOOL ISPF interface
The DIFPOOL command can also be executed from the DIF ISPF interface.
When the DIF ISPF interface is invoked from the primary panel, option
2 will display pool information for the specified product and optionally a
specific pool name. For example, the following screen shows the device pools for ACC.
Figure. ISPF DIFPOOL - Displaying Device Pools
The DIF ISPF panels can also display information about the device pool. The following panel is an example of the Volume information (V option). The panels can also display SRS recovery options used by the device pool (R option), and display information about the pool (S).
Figure 7-5. ISPF DIFPOOL - Displaying Devices within a Pool Definition
The SCC Monitor can create and set variables that are stored in a VSAM
file. These variables are used to communicate with tasks that perform automation functions.
The DIFVAR TSO command can be used to display the current value of a DIF
variable that was defined and set by the MONRUN program. The
DIFVARS TSO command can be used to reset the variable’s current value to
nulls or another value.
Before issuing these commands, the DIFVAR VSAM file must first be
allocated to the TSO session. This can be accomplished with the following TSO command:
ALLOC F(DIFVAR) DSN(DTS.R71.DIFVAR) SHR
Display DIF variables
The following DIFVAR command displays all the variables contained in the
DIFVAR VSAM file:
DIFVAR *
The following DIFVAR command displays all variables beginning with
“COMPRESS”. This is useful to see which volumes had an action of compress initiated and to
determine the status of the action taken.
DIFVAR COMPRESS*
The following DIFVAR command displays all variables beginning with
“WORK01”. This is useful to see what the last action taken for a particular volume was and
to see other current information collected for the volume.
DIFVAR WORK01*
Update DIF variables
DIFVARS TSO command can be used to update a DIF variable. The
variable can be set to nulls or another value. For example, the following
DIFVARS command updates the value of variable
COMPRESS-STOR02. The value of the variable will be set to
END. Specifying the DIFVARS command without a value will
set the variable to nulls. DIFVARS - don’t use pattern matching
characters.
DIFVARS COMPRESS-STOR02 END
Delete DIF variables
DIFVARS can be used to delete a DIF variable, by specifying
DELETE as the third positional parameter. For example, the
following DIFVARS command deletes the variable used in the previous
example. DIFVARS - don’t use pattern matching characters.
DIFVARS COMPRESS-STOR02 * DELETE
DIFVAR and DIFVARS - ISPF interface
The DIFVAR and DIFVARS commands can also be invoked from
the DIF ISPF interface. When the DIF ISPF interface is invoked from the primary panel,
option 3 VARIABLES will display the DIF variables and their values.
The values can also be updated or deleted from the panel in which they are displayed.
Figure 7-6. ISPF DIFVAR - Displaying Variables
By default, the DIF console commands can only be entered from an operator console or via
the PDS PARMLIB DD statement. The DIF TSO command interface can be enabled with the
DIFTSO parameter in the DIF execution JCL. For information about enabling
the DIFTSO interface, examine the DIF parameter “DIFTSO” on page 6-9.
This parameter assigns a TSO command name to the interface. After the next DIF shutdown/restart, the TSO command processor can then be used to enter DIF commands. The output from the commands is returned to the TSO user.
For example, if DIFTSO=DIFTSO has been specified in the DIF execution
JCL, the following status command can be issued from TSO after DIF is active:
DIFTSO STATUS
DIF TSO commands under ISPF - The DIF TSO command processor is loaded
into extended CSA, and the command is added to the MLPA chain. By default, ISPF will not
execute the command from the ISPF command line. However, the DIF TSO command can be added to
the ISPF command table, or the TSOEXEC command interface can be used from
the ISPF command line. For example, the following command will issue the DIF STATUS command
from an ISPF command line:
TSOEXEC DIFTSO STATUS
DIFTSO command interface
has been enabled, you should use your security system to protect the DIF TSO command from
unauthorized users. DIFALIB - Authorized TSO Commands
An Alternate Way to Authorize TSO Commands
Several of the products contain TSO commands that must be executed as authorized commands. The installation sections of the DCC, DLimit, and ZCC manuals have installation steps that document the normal procedure used to authorize the TSO commands:
- Locate the active
IKJTSOxxPARMLIB Member. - Edit the
IKJTSOxxPARMLIB Member. - Activate the modified
IKJTSOxxmember. - Add the DIF Load Library to the
STEPLIBDD in a Logon Procedure.
To bypass this problem, there a developed DIFALIB facility.
DIFALIB is a started component that adds a dynamic authorization
interface for the TSO commands. To use the interface, the following DIF start command must
be issued from the console or added to the DIF START00 member in the
DTS.R71.PARMLIB dataset:
F DIF,START DIFALIB
To use the DIFALIB dynamic authorization interface, a
DIFALIB DD statement must be allocated to the user’s TSO session, and
point to the DIF authorized load library - typically
DTS.R71.LOADLIB. If the DD statement cannot easily be added to the ISPF
logon procedure used by the TSO session, the allocation can also be performed using ISPF
option 6:
ALLOC FI(DIFALIB) DA('DTS.R71.LOADLIB') SHR
In the current SCC builds, the DIFALIB DD is automatically allocated in
the CDIFINIT member in the ISPFLIB:
DTS.R71.ISPFLIB(CDIFINIT). If required, the following statements in
BOLD can be added to CDIFINIT to bypass the ISPF option 6
allocation request mentioned above:
ADDRESS TSO
"ALTLIB ACTIVATE DATASET('"HLQISPF".ISPFLIB') APPLICATION(CLIST)"
IF RC <> 0 THEN SIGNAL ERROR_DIF5
ADDRESS TSO
"ALLOC FILE(DIFALIB) DATASET('"HLQLOAD".LOADLIB') SHR"
IF RC <> 0 THEN SIGNAL ERROR_DIF5
DIFALIB is installed by the DIF started task, a small program is
installed in CSA with aliases for all of the authorized TSO commands. If the program
receives a command request, it first validates the passed command name is in the TSO command
list and then elevates the current command task to an authorized state. Control is then
passed to the same command name located in the authorized dataset allocated to the
DIFALIB DD statement. DIFALIB, the operating system will
fail the request. An authorized caller is not allowed to transfer control to a program
residing in a non-authorized library.
ISPF Limitations If DIFALIB is used without any
commands added to the IKJTSOxx PARMLIB member, or updates to the TSO logon
proc to add the DIF load library to the STEPLIB DD statement, there are two
limitations to using the authorized commands:
- The authorized commands will not work via ISPF Option 6 or using the TSO command issued on the command line.
- However, the authorized commands embedded in the panels will work correctly.
ISPTCM table. Alternatively, the
TSOEXEC command can be used instead of TSO on the command to issue
authorized commands. If DIFALIB is used and the authorized commands have been added to
the IKJTSOxx PARMLIB member and activated from the TSO READY prompt, ISPF
will allow execution of the authorized commands on both ISPF Option 6 and via the TSO
command interface on the command line. No updates to the TSO logon proc to add the DIF load
library to the STEPLIB DD statement are required.