Back to my favorite topic of using open source tools on z/OS. I wanted to install zopen.community on my system. And I did not have enough space in the file system. Worse than that, I did not have volumes with enough space.

So I allocated a new volume and now I need to create my linear VSAM dataset that would hold the ZFS file system.

Allocating a ZFS

Another obstacle presented itself immediately. I wanted my ZFS dataset to be 8000 cylinders large with additional 1000 cylinders for new extents. The following IDCAMS job failed.

//DEFZFS   EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//AMSDUMP  DD SYSOUT=*
//SYSIN    DD *
  DEFINE CLUSTER (           -
    NAME(<data.set.name>)    -
    STORCLAS(<storcls>)      -
    ZFS CYL(8000 1000)       -
    SHAREOPTIONS(3,3)        -
  )
/*

It turned out that in order to have a dataset to be over 4GB it has to be an extended format which requires a data class definition.

When I specified the STORCLASS and DATACLASS in my job, it failed.

//DEFZFS   EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//AMSDUMP  DD SYSOUT=*
//SYSIN    DD *
  DEFINE CLUSTER (           -
    NAME(<data.set.name>)    -
    STORCLAS(<storcls>)      -
    DATACLASS(<datacls>).    -
    ZFS CYL(8000 8000)       -
    SHAREOPTIONS(3,3)        -
  )
/*

ACS routine strikes

SMS did not honor the data class and ther result was an allocation error. Checking the job SYSPRINT, this is what I got

IGD01008I DATACLAS DC <datacls>
IGD01008I STORCLAS SC <storcls>                          
IGD01008I ALLOCATION SET TO <storcls> XXXXX
IGD01010I IN SG STORCLAS SG SC DC  <stgcls> <datcls>
IGD01010I ALLOCATION SET TO <stgcls> STORAGE GROUP      
IGD17103I CATALOG ERROR WHILE DEFINING VSAM DATA SET
<data.set.name>                                         
RETURN CODE IS 140 REASON CODE IS 110 IGG0CLEV      

The resulting <stgcls> was different from the <storcls> I specified.

The IGD0100xI messages are result of WRITE diagnostic statements in the ACS routines:

see z/OS MVS System Messages Vol 8.

And the IGD17103I message shows an allocation error.

The hidden ISMF menu items

So I went to ISPF and found the ISMF screens. I only had this menu:

Select one of the following options and press Enter:                       
                                                                           
0  ISMF Profile            - Change ISMF User Profile                      
1  Data Set                - Perform Functions Against Data Sets           
2  Volume                  - Perform Functions Against Volumes             
3  Management Class        - Specify Data Set Backup and Migration Criteria
4  Data Class              - Specify Data Set Allocation Parameters        
5  Storage Class           - Specify Data Set Performance and Availability 
9  Aggregate Group         - Specify Data Set Recovery Parameters          
L  List                    - Perform Functions Against Saved ISMF Lists    
R  Removable Media Manager - Perform Functions Against Removable Media     
X  Exit                    - Terminate ISMF                                

And option 7 that allows the display and manipulation of ACS routines was missing.

To get the full storage admin panel I did:

  1. 0 ISMF PROFILE
  2. 0 user mode selection
  3. 0 User Mode Selection
  4. Set User Mode to 2 (For a Storage Administrator)

Then quit ISMF & re-login to ISMF and I finally saw all the menu options.

Selection or Command ===>                                                     
                                                                              
                                                                   More:     +
0  ISMF Profile              - Specify ISMF User Profile                      
1  Data Set                  - Perform Functions Against Data Sets            
2  Volume                    - Perform Functions Against Volumes              
3  Management Class          - Specify Data Set Backup and Migration Criteria 
4  Data Class                - Specify Data Set Allocation Parameters         
5  Storage Class             - Specify Data Set Performance and Availability  
6  Storage Group             - Specify Volume Names and Free Space Thresholds 
7  Automatic Class Selection - Specify ACS Routines and Test Criteria         
8  Control Data Set          - Specify System Names and Default Criteria      
9  Aggregate Group           - Specify Data Set Recovery Parameters           
10 Library Management        - Specify Library and Drive Configurations       
11 Enhanced ACS Management   - Perform Enhanced Test/Configuration Management 
C  Data Collection           - Process Data Collection Function               
G  Report Generation         - Create Storage Management Reports              
L  List                      - Perform Functions Against Saved ISMF Lists     
P  Copy Pool                 - Specify Pool Storage Groups for Copies         
R  Removable Media Manager   - Perform Functions Against Removable Media      
Use HELP Command for Help; Use END Command or X to Exit.   

SMF control data sets

The ISMF panels required me to specify

To find out where they are, I was told to run D SMS operator commandd

D SMS                            
IGD002I 11:58:20 DISPLAY SMS 439 
SCDS = <hlq>.DFSMS.SCDS           
ACDS = <hlq>.DFSMS.ACDS           
COMMDS = <hlq>.DFSMS.COMMDS       
ACDS LEVEL = z/OS V3.1           
DINTERVAL = 150                  
REVERIFY = NO                                         
ACSDEFAULTS = NO                                      
    SYSTEM     CONFIGURATION LEVEL    INTERVAL SECONDS
    LOCAL      ---------- --------          N/A       
    MINIPLEX   2025/03/17 08:09:55           15       
    MOSSPLEX   ---------- --------          N/A       

Modify, verify, translate and test

7 Automatic Class Selection - Specify ACS Routines and Test Criteria

Allows working with the ACS routine. The panels are mostly self explanatory once you know what SCDS and ACDS stands for, see SMF control data sets

The process is as follows:

  1. Pick a dataset where you store the source of your ACS routines
  2. Translate from the dataset above to SCDS
  3. Verify the routine from SCDS
  4. Define a test (in its own dataset, see below)
  5. Run a test and make sure you are happy with the results

One last thing that surprised me was when I wanted to test the routine, I was asked for a ACS Test Library and ACS Test Member. This is a regular FB80 PDS member where ISMF stores the test you define/modify/run on its ACS TEST * panels.

ACS routine editting

The syntax of ASC routines is documented in DFSMSdfp Storage Administration manual in chapter Writing ACS routines.

Activate

After verify and test I Activate the routines, meaning copying them from SCDS to ACDS.

There is a separate menu option 8 for this on the ISFM panel:

8  Control Data Set          - Specify System Names and Default Criteria

Then select option 5

5. Activate      - Activate the CDS

after activation you will get a confimration TSO messages

IGD008I NEW CONFIGURATION ACTIVATED FROM SCDS <hlq>.DFSMS.SCDS BY PROD001
IGD403I CURRENT SYSTEM CONFIGURATION                                    
ACTIVATION LEVEL: 86                                                    
ACTIVATION TIME(UTC): 16:11:12.30                                       
ACTIVATION DATE: 2025/03/12                                             
ACTIVATION SOURCE: APPL                                                 
***