VSAMxxx section of the DFSDFxxx member

The VSAMxxx section of the DFSDFxxx member specifies definitions used to dynamically add, update, or delete VSAM subpools. The section must begin with the header <SECTION=VSAMxxx>. The VSAMxxx section is valid in DB/DC, DBCTL, and batch environments.

By specifying VSAM subpool definitions in the DFSDFxxx member, you can dynamically change or delete subpools that have been specified with VSRBF statements in the DFSVSMxx member.

The VSAMxxx section in the DFSDFxxx member specifies the VSAM subpool definitions for reconfiguration. VSAMxxx is a dynamic section name. You can maintain multiple VSAMxxx sections in one DFSDFxxx member by specifying a unique suffix (xxx) for each section. Multiple sections are useful for storing commonly used definitions for future use. For example:
<SECTION=VSAMJAN>
…
…
<SECTION=VSAMFEB>
…
…
<SECTION=VSAMMAR>
…
…

You do not need to define multiple VSAMxxx sections in the DFSDFxxx member. You can define only one VSAMxxx section and modify the definition statements in that section before each invocation of the UPDATE POOL TYPE(DBAS) command. However, it might make sense to store commonly used definition statements that can be reused at future times.

This section is processed dynamically only by invocation of an UPDATE POOL TYPE(DBAS) command. With the UPDATE POOL TYPE(DBAS), you can specify which section name to use. For example:
UPDATE POOL TYPE(DBAS) SECTION(VSAMJAN)

The keywords in the VSAMxxx section can be specified multiple times to reference different subpool changes. The following definition parameters for each keyword are positional and are listed in the correct order.

Syntax

Read syntax diagramSkip visual syntax diagramPOOLID=( id,A,B)DBD=( dbdname, dsid,id,ERASE=YN,FREESPACE=NY)
A
Read syntax diagramSkip visual syntax diagramFIXDATA=NY,FIXINDEX=NY,FIXBLOCK=NY,STRINGNM= n
B
Read syntax diagramSkip visual syntax diagramVSRBF=( bufsize,03bufnum,Dtype,HSOHSR,HS n)

Parameters

POOLID=()
This keyword statement is for adding, updating, or deleting a subpool from a VSAM shared resource pool. Because the same shared resource pool can have multiple subpools in the same shared resource pool, you might have multiple POOLID statements for the same shared resource pool, but for different subpools. If multiple POOLID statements for the same shared resource pool are defined, only the occurrence of FIXDATA, FIXINDEX, FIXBLOCK, and STRINGNM parameter values specified on the first POOLID statement are recognized. Any subsequent occurrences of those parameter values belonging to the same shared resource pool are ignored. Those parameters apply to the VSAM shared resource pool as a whole.

A maximum of 255 VSAM shared resource pools is allowed.

id
This positional parameter specifies the user-defined identifier that is assigned to a VSAM shared resource pool. The ID is a 1- to 4-character alphanumeric field that is used with the DBD statement to direct a given data set to a specific shared pool. This parameter is required.
If two or more POOLID statements for the same ID are specified for the same buffer size and buffer type in the same shared pool, the subsequent statements are rejected.
FIXDATA=N | Y
This parameter specifies the data shared resource pool long-term-page-fixing option. If Y is specified, all buffers in the data shared resource pool are long-term page-fixed during configuration of the shared resource pool. If N is specified, no buffers in the data shared resource pool are long-term page-fixed. If the parameter is omitted, the command takes as default what was previously specified for the shared pool. For the creation of a new shared pool, if the parameter is omitted, the default is N. This parameter is optional.
FIXINDEX=N | Y
This parameter specifies the index shared resource pool long-term-page-fixing option. If Y is specified, all buffers in the index shared resource pool are long-term page-fixed during configuration of the shared resource pool. If N is specified, no buffers in the index shared resource pool are long-term page-fixed. If the parameter is omitted, the command takes as default what was previously specified for the shared pool. If this is for the creation of a new shared pool and the parameter is omitted, the default is N. This parameter is optional.
FIXBLOCK=N | Y
This parameter specifies the I/O related control blocks long-term-page-fixing option. If Y is specified, all I/O-related control blocks are long-term page-fixed during configuration of the shared resource pool. If N is specified, no I/O-related control blocks are long-term page-fixed. If the parameter is omitted, the command takes as default what was previously specified for the shared pool. For the creation of a new shared pool, if the parameter is omitted, the default is N. This parameter is optional.
STRINGNM=n
This parameter specifies the maximum number of VSAM I/O requests that can be concurrently active. The specified value must be a decimal number 1 - 255. The value specified is a number as close as possible to the maximum number of regions expected to be running concurrently, including the regions that are dynamically started. This parameter is optional.
Notes:
  • When increasing the number of subpools for an existing VSAM shared resource pool, update the DFSDFxxx member with a POOLID, which identifies the VSAM shared resource pool that the subpool belongs to, followed by a VSRBF statement. For example:
    POOLID=(id,VSRBF=(bufsize,bufnum,type,HSO,HSn))
    or
    POOLID=(id,VSRBF=(bufsize,bufnum,type,HSR,HSn))
  • When adding a new VSAM shared resource pool, update the DFSDFxxx member with a POOLID statement, followed by one or more VSRBF subpool definition statements. For example:
    POOLID=(id,Fixdata=Y,Fixindex=N,Fixblock=N,Stringnm=n,
      VSRBF=(bufsize,bufnum,type,HSR,HSn))
  • When decreasing the number of subpools for an existing VSAM shared resource pool, define the DFSDFxxx member with a POOLID, which identifies the VSAM shared resource pool the subpool belongs to, followed by a VSRBF statement. For example:
    POOLID=(id,VSRBF=(bufsize,bufnum))
    Set bufnum to 0 to indicate that the buffer is to be removed.
VSRBF=()
This parameter lists the VSAM subpool definitions for one subpool. The VSRBF parameter is required on the POOLID keyword statement. This behavior is different from how definitions are specified in the DFSVSMxx member. You can specify multiple VSRBF parameters. The following definition subparameters are positional and are listed in the correct order.
bufsize
This positional subparameter specifies the size of the buffers in the subpool. The parameter value can be in bytes, 512 - 32768. The UPDATE POOL TYPE(DBAS) command rounds up the size value to 512, 1024, 2048, 4096 and thereafter to multiples of 4096. You can code specifications of 1024 and above as 1K, 2K, 4K, and thereafter round them up to multiples of 4 KB to a maximum of 32 KB. This subparameter is required.
bufnum
This positional subparameter specifies the number of buffers in the subpool. The parameter value can be 0 or 3 - 32767. If the value specified is less than 3 and not 0, the UPDATE POOL TYPE(DBAS) command overrides the value with 3. If the value specified is greater than 32767, the command overrides the value with 255. A value of 0 indicates that the subpool is to be deleted. This subparameter is required.
type
This positional subparameter is a one-character field that specifies whether the subpool in the shared resource pool is an index subpool (I) or a data subpool (D). The default is D. This subparameter is optional.
HSO | HSR
This positional subparameter specifies the action IMS takes if Hiperspace (extended storage on z/OS®) buffering for this subpool is not available. If this subparameter value is not specified when HSn is given, the command takes as default what was previously specified for the subpool. For the creation of a new subpool, if the parameter is omitted, then HSO is assumed when HSn is given. Otherwise, this subparameter is optional.
HSO
Indicates that Hiperspace buffering is optional and IMS can continue without Hiperspace buffering.
HSR
Indicates that Hiperspace buffering is required and IMS must terminate if Hiperspace buffering is not available.
HSn
This positional subparameter specifies a 1- to 8-character number n ranging from 3 to 16777,215 for the number of Hiperspace buffers to build for this subpool. This subparameter is optional.
HSO | HSR and HSn are valid only for subpool buffer sizes that are 4 KB or larger.
DBD=()
This keyword statement specifies that the indicated shared resource pool is to be assigned to the data set that has a matching ID parameter as defined on the POOLID= shared resource pool definition statement. This statement is optional. Except for the ERASE and FREESPACE parameters, the parameters supported on the DBD statement are positional.
dbdname
This positional parameter specifies the name of the database. The DBD name can be for a non-partitioned database, a HALDB partition, or a HALDB master. For a HALDB partition, specify the name of the partition as the dbdname. If the HALDB master name is specified, all the HALDB partitions associated with the HALDB are assigned to the same subpool. This parameter is required.
dsid
This positional parameter identifies the specific data set of a data set group within a database (identified by the dbdname parameter) that requests assignment of a specific shared resource pool. The number is an IMS internally assigned value 1 - 10. This parameter is required.
For data organizations such as primary index, unique secondary index, and HISAM without dependent segments, the primary data set of the data set group is assigned data set number 1. No secondary data set of the data set group exists for these data organizations.
For data organizations such as non-unique secondary index, and HISAM with dependent segments, the primary data set of the data set group is assigned data set number 1, and the secondary data set of the data set group is assigned data set number 2.
For hierarchic direct data organization, the data set group always consists of a single data set. The data set of the first data set group is assigned data set number 1, and data set numbers for subsequent data set groups are sequentially assigned numbers 2 through 10. The maximum number of data set groups for a database is 10.
Requirement: For High Availability Large Databases (HALDB), specify the data set number as a number or an alphabetic character. The valid data set numbers defined for HALDB partition data sets are 1 through 10 or A through J, L, and X. (When HALDB Online Reorganization is used, data sets M through V and Y are automatically directed to the same shared resources pools for data sets A through J and X. The specification of M through V and Y are not valid.) The data set of the first data set group must be assigned the letter A (for both data sets A and M when HALDB Online Reorganization is used). The data set numbers for subsequent data set groups (B through J and N through V when HALDB Online Reorganization is used) must be sequentially assigned the other valid letters (B through J). Use the letter L to specify the indirect list data set. For PHIDAM databases, use the letter X (for both data sets X and Y when HALDB Online Reorganization is used) to specify the primary index data set. For PSINDEX databases, you cannot code an alphanumeric character to designate the data set number. You must code a numeric value.
id
This positional parameter specifies the user-defined identifier that is assigned to a specific shared resource pool. The ID is a 1- to 4-character alphanumeric field that must be equal to the ID assigned to the specific shared resource pool. This parameter is optional and defaults to a null value.
ERASE=Y | N
Specifies whether deleted logical records are erased (Y) or only marked as deleted records (N). The default is Y. This parameter is optional. This parameter is not positional and must be specified after the positional parameters for the DBD statement.
FREESPACE=N | Y
Specifies whether the defined free space percentage in the KSDS is preserved (Y) or not (N). The default is N. This parameter is optional. This parameter is not positional and must be specified after the positional parameters for the DBD statement.

Example of the VSAMxxx section of the DFSDFxxx member

/******************************************************************/
/* VSAM Section                                                   */
/******************************************************************/
<SECTION=VSAM001>
POOLID=(VSM1,VSRBF=(512,10))
POOLID=(VSM2,
VSRBF=(1024,1000,D),
VSRBF=(1024,1000,I))
POOLID=(VSM4,VSRBF=(4096,5000))
POOLID=(VSM9,VSRBF=(32K,32767,D))

<SECTION=VSAM002>
POOLID=(VSM1,VSRBF=(512,10))
POOLID=(VSM2,FIXDATA=N,FIXINDEX=Y,FIXBLOCK=N,STRINGNM=255,
VSRBF=(1024,500,D),
VSRBF=(1024,99,I),
VSRBF=(8192,6000,D))
POOLID=(VSM4,FIXDATA=Y,FIXINDEX=Y,STRINGNM=100,VSRBF=(8192,25,I))
POOLID=(VSM9,FIXINDEX=Y,FIXBLOCK=N,STRINGNM=200,VSRBF=(32K,32767,D))
DBD=(DEVABZ02,01,VSM1)
DBD=(ABCIDJ03,01,VSM2)
DBD=(DEVBTZ02,01,VSM4)
DBD=(DEVBTZ02,02,VSM4)
DBD=(ABHONKB,A,VSM9)
DBD=(ABHONKJ,B,VSM9)

<SECTION=VSAM003>
POOLID=(VSM1,VSRBF=(512,10))
POOLID=(VSM2,FIXDATA=N,FIXINDEX=Y,FIXBLOCK=N,STRINGNM=255,
VSRBF=(1024,500,D),
VSRBF=(1024,99,I),
VSRBF=(1024,99,I),
VSRBF=(8192,6000,D))
POOLID=(VSM4,FIXDATA=Y,FIXINDEX=Y,STRINGNM=100,VSRBF=(8192,25,I))
POOLID=(VSM9,FIXINDEX=Y,FIXBLOCK=N,VSRBF=(32K,32767,D))
DBD=(DEVABZ02,01,VSM1)
DBD=(ABCIDJ03,01,VSM2)
DBD=(DEVBTZ02,02,VSM4)
DBD=(ABHONKB,A,VSM9,ERASE=Y,FREESPACE=N)
DBD=(ABHONKJ,B,VSM9)
/******************************************************************/
/*                                                                */
/******************************************************************/