As I said in the previous post I wanted to run grep on a dataset but the old port of GNU grep was no longer available on my system and zopen.community ports do not work with the //'data.set.name' syntax. What a bummer.
Luckily from z/OS 2.5 there is a new component of z/OS available - the Data Set File System (DSFS). So I ventured in to reading the Data Set File System Administration to set it up.
The first chapter describes how it works and the second how to set it up.
I could not find it on my system until a colleague of mine pointed me to where the libraries were located.
For the next time, to find it myself, these are the catalog search patterns to use
**.SIOE*.** to find the product libraries**.SIEA*.** to find the linklist librariesand the default USS location /usr/lpp/dfs/global/bin/IBM.
I followed the steps in chapter 2 but it does not really show the JCLs how to allocate and format the datasets which I think should come first so lets do that.
Use this JCL to run IDCAMS to allocate the linear VSAM dataset that will be used for the utility file system.
//DEFZFS EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//AMSDUMP DD SYSOUT=*
//SYSIN DD *,SYMBOLS=JCLONLY
SET MAXCC=0
DEFINE CLUSTER ( -
NAME(<hlq>.DSFS) -
STORCLAS(USER) -
ZFS CYL(100 100) -
SHAREOPTIONS(3,3) -
)
/*
DSFS will automatically format the file system on startup if not formatted.
ADDGROUP DSFSGRP SUPGROUP(SYS1)
ADDUSER DSFS DFLTGRP(DSFSGRP) AUTHORITY(USE) UACC(NONE)
RDEFINE STARTED DSFS.** STDATA(USER(DSFS))
SETROPTS RACLIST(STARTED)
SETROPTS RACLIST(STARTED) REFRESH
BPXPRMxx parmlib memberFILESYSTYPE TYPE(DSFS)
ENTRYPOINT(IDFFSCM)
ASNAME(DSFS,'SUB=MSTR')
PARM('PRM=(yy)')
MOUNT FILESYSTEM('<hlq>.DSFS')
TYPE(DSFS)
MOUNTPOINT('/dsfs')
MODE(RDWR)
IOE.SIOESAMP(IDFFSPRM) to SYS1.PARMLIB(IDFPRMyy)UTFS_NAME=<hlq>.DSFS
Without this DSFS will look for a dataset name <hlq>.DSFS.&SYSNAME instead of just <hlq>.DSFS when performing the MOUNT FILESYSTEM command above.
Then copied IOE.SIOEPROC(DSFS) to SYS1.PROCLIB. There are two commented DDs
SIEALNKE in link list andPARM('PRM=(yy)') clause effectively deferring to SYS1.PARMLIB(IDFPRMyy)So I did not need to uncoment either of them,
I used these console commands to start and stop DSFS
SETOMVS RESET=(xx) - start DSFS by loading BPXPRMxxMODIFY OMVS,STOPPFS=DSFS - to stop the dsfs file systemIf you want the utility file system to be larger than 4 GB, then use SMS DATACLASS for extended addressability.