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 BPXPRMxx
MODIFY 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.