Mainframe ZOS utilities
CONTENTS:
1.1. Use of master Console command
1.2. When you get the “in use” message
2.1. IDCAMS/VTOC DCOLLECT utility
2.2. LIST VTOC batch printing
Case4. Ditto batch VTOC listing
Case5. Dump/restore disk volumes
5.1. Dump full disk volumes
5.2. Restore from tape dump files to same disk volumes
5.3. Restore from tape dump files to spare disk volumes
The following 5 examples of frequently occurring utility cases with Mainframe in z/os are documented. When you need to process a file that is busy, it is important to find out who is using the file. An easy way exists to receive VTOC information – batch printing with IEHLIST or to view online VTOC using Ditto. There is a way to have batch VTOC listing through Ditto. Dump/restore of full disk volumes can be performed to/from tape.
Case1. Who is using the file when edit VSAM file and ‘IN USE” is received
1.1. Use of master Console command in TSO/ISPF sd.log:
/D GRS,RES=(*,BCA1MGP.STEF.JCL)
ISG343I 11.08.48 GRS STATUS 627
S=SYSTEM SYSDSN BCA1MGP.STEF.JCL
SYSNAME JOBNAME ASID TCBADDR EXC/SHR STATUS
BC2A IBMUSER 005A 008FFBF8 SHARE OWN
1.2. When you get the “in use” message, try pressing F1 two times.
You wil receive the following messages:
OK: Data set ‘BCA1MGP.STEF.JCL’
is in use by the following 1 user(s) and/or job(s):
——————————————————
IBMUSER – editing member in ‘BCA1MGP.STEF.JCL’
Case2. VTOC disk information
2.1. IDCAMS/VTOC DCOLLECT utility
DCOLLECT function of VSAM collects data in a sequential file you can use as input to other programs or applications. In job COLLECT1 the data for disk volume PRDB10 are collected.
– JOB COLLECT1 execution:
//COLLECT1 JOB …
//STEP1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//OUTDS DD DSN=USER.DCOLLECT.OUTPUT,
// STORCLAS=LARGE,
// DSORG=PS,
// DCB=(RECFM=VB,LRECL=644,BLKSIZE=0),
// SPACE=(1,(100,100)),AVGREC=K,
// DISP=(NEW,CATLG,KEEP)
//SYSIN DD *
DCOLLECT –
OFILE(OUTDS) –
VOLUME(PRDB10)
/*
– JESS Output Result Analyse
? COLLECT1 – S SYSPRINT STEP1:
IDC01811I NUMBER OF ‘D ‘ RECORDS PROCESSED WAS 4 – (D – Active data set records)
IDC01811I NUMBER OF ‘A ‘ RECORDS PROCESSED WAS 3 – (A – VSAM Association information)
IDC01811I NUMBER OF ‘V ‘ RECORDS PROCESSED WAS 1 – (V – Volume information)
IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 0
– Browse via TSO/ISPF the produced data file – p.3.4 – USER.DCOLLECT.OUTPUT:
– BROWSE USER.DCOLLECT.OUTPUT/ on BC2MCC Line 00000000 Col 001 080
********************************* Top of Data **********************************
.h..V ..BC2A.???………PRDB10T…………….?…’..[……..?…………………………?3390 ….
.&..D ..BC2A.???……..SYS1.VVDS.VPRDB10 . ……..PR
.?..A ..BC2A.???……..SYS1.VVDS.VPRDB10 SYS1.VVDS.VP
.&..D ..BC2A.???……..KCI01.DMNSNDSK.DAKMSTR.INDEX . . ….{.PR
.?..A ..BC2A.???……..KCI01.DMNSNDSK.DAKMSTR.INDEX KCI01.DMNSND
.&..D ..BC2A.???……..KCI01.DMNSNDSK.GLKHS05.DATA .?……{.PR
.?..A ..BC2A.???……..KCI01.DMNSNDSK.GLKHS05.DATA KCI01.DMNSND
.&..D ..BC2A.???……..SYS1.VTOCIX.PRDB10 . ?… .?.PR
——————————————————————–
(Appendix F. Interpreting DCOLLECT Output
z/OS V1R8.0-V1R9.0 DFSMS Access Method Services for Catalogs
SC26-7394-06 – information about records types)
Following information can be retrieved
Record Type Name
- D – Active Data Set Record
- A – VSAM Association Information
- V – Volume Information
- M – Migrated Data Set Information
- B – Backup Data Set Information
- C – DASD Capacity Planning Information
- T – Tape Capacity Planning Information
- DC – Data Class construct information
- SC – Storage Class construct information
- MC – Management Class construct Information
- BC – Base Configuration Information
- SG – Storage Group construct Information
- VL – Storage Group volume Information
- AG – Aggregate Group Information
- DR – OAM Drive Record Information
- LB – OAM Library Record Information
- CN – Cache Names from the Base Configuration Information
- AI – Accounting Information from the ACS routines
2.2. LIST VTOC batch printing with IEHLIST in job LISTVTOC
– JOB LISTVTOC execution:
//LISTVTOC JOB (9999,IPO,10,10),
// ‘CORNERSTONE’,
// ,
// MSGCLASS=X,
// MSGLEVEL=(1,1),
// NOTIFY=,
// TIME=1440,
// USER=
//LISTVT EXEC PGM=IEHLIST,REGION=1024K
//SYSPRINT DD SYSOUT=X
//PRD001 DD DISP=OLD,VOL=SER=PRDB10,UNIT=3390
//SYSIN DD *
LISTVTOC VOL=3390=PRDB10
– JESS Output Result Analyse
? LISTVTOC – S SYSPRINT LISTVT:
SYSTEMS SUPPORT UTILITIES—IEHLIST
DATE: 2011.040 TIME: 15.03.04
CONTENTS OF VTOC ON VOL PRDB10 <THIS IS AN SMS MANAGED VOLUME>
THERE IS A 1 LEVEL VTOC INDEX
DATA SETS ARE LISTED IN ALPHANUMERIC ORDER
—————-DATA SET NAME————— CREATED DATE.EXP FILE TYPE SMS
KCI01.DMNSNDSK.DAKMSTR.INDEX 2007.047 00.000 VSAM S
KCI01.DMNSNDSK.GLKHS05.DATA 2007.124 00.000 VSAM S
SYS1.VTOCIX.PRDB10 2003.306 00.000 SEQUENTIAL SU
SYS1.VVDS.VPRDB10 2003.308 00.000 VSAM S
THERE ARE 1039 EMPTY CYLINDERS PLUS 18 EMPTY TRACKS ON THIS VOLUME
THERE ARE 9744 BLANK DSCBS IN THE VTOC ON THIS VOLUME
THERE ARE 938 UNALLOCATED VIRS IN THE INDEX
– LISTVTOC formatted with FORMAT execution:
//SYSIN DD *
LISTVTOC VOL=3390=PRDB10,FORMAT
– JESS Output Result Analyse with FORMAT for the same files above
? LISTVTOC – S SYSPRINT LISTVT result is as follows:
SYSTEMS SUPPORT UTILITIES—IEHLIST
DATE: 2011.040 TIME: 15.07.03
CONTENTS OF VTOC ON VOL PRDB10 <THIS IS AN SMS MANAGED VOLUME>
THERE IS A 1 LEVEL VTOC INDEX
DATA SETS ARE LISTED IN ALPHANUMERIC ORDER
FORMAT 4 DSCB NO AVAIL/MAX DSCB /MAX DIRECT NO AVAIL NEXT ALT FORMAT 6
VI DSCBS PER TRK BLK PER TRK ALT TRK TRK(C-H) (C-H-R)
81 9747 50 45 0 0 0 13
—————DATA SET NAME—————- SER NO SEQNO DATE.CRE DATE.EXP
KCI01.DMNSNDSK.DAKMSTR.INDEX PRDB10 1 2007.047 00.000
SMS.IND LRECL KEYLEN INITIAL ALLOC 2ND ALLOC EXTEND LAST BLK(TTTT
S E 0 TRKS 0 368000 0
EXTENTS NO LOW(C-H) HIGH(C-H)
0 17 0 25 0
—-UNABLE TO CALCULATE EMPTY SPACE.
—————DATA SET NAME—————- SER NO SEQNO DATE.CRE DATE.EXP
KCI01.DMNSNDSK.GLKHS05.DATA PRDB10 1 2007.124 00.000
SMS.IND LRECL KEYLEN INITIAL ALLOC 2ND ALLOC EXTEND LAST BLK(T-R-L
S 0 CYLS 0 0 0 58786
EXTENTS NO LOW(C-H) HIGH(C-H)
0 26 0 2299 14
—-UNABLE TO CALCULATE EMPTY SPACE.
—————DATA SET NAME—————- SER NO SEQNO DATE.CRE DATE.EXP
SYS1.VTOCIX.PRDB10 PRDB10 1 2003.306 00.000
SMS.IND LRECL KEYLEN INITIAL ALLOC 2ND ALLOC EXTEND LAST BLK(T-R-L
SU 2048 TRKS CONTIG 0 44 21 0
EXTENTS NO LOW(C-H) HIGH(C-H)
0 14 0 16 14
—-ON THE ABOVE DATA SET,THERE ARE 368000 EMPTY
—————DATA SET NAME—————- SER NO SEQNO DATE.CRE DATE.EXP
SYS1.VVDS.VPRDB10 PRDB10 1 2003.308 00.000
SMS.IND LRECL KEYLEN INITIAL ALLOC 2ND ALLOC EXTEND LAST BLK(T-R-L
S 0 TRKS 10 0 0 58786
EXTENTS NO LOW(C-H) HIGH(C-H)
0 13 1 13 10
—-UNABLE TO CALCULATE EMPTY SPACE.
SYSTEMS SUPPORT UTILITIES—IEHLIST
VPSM A = NUMBER OF TRKS IN ADDITION TO FULL CYLS IN THE EXTENT
TRK FULL TRK FULL TRK FULL TRK FULL
ADDR CYLS A ADDR CYLS A ADDR CYLS A ADDR CYLS A
206 0 4 376 0 14 34500 1039 0
THERE ARE 1039 EMPTY CYLINDERS PLUS 18 EMPTY TRACKS ON THIS VOLUME
THERE ARE 9744 BLANK DSCBS IN THE VTOC ON THIS VOLUME
THERE ARE 938 UNALLOCATED VIRS IN THE INDEX
Case3. Ditto online VTOC for the same disk volume PRDB10
In TSO/ISPF– Enter: DI – 4(disk) – 2(2. DVT – Display VTOC (sorted by name, dates, or extents))
Input Volume serial prdb10 Data set name ** Sort by NAME Output
DITTO/ESA for MVS DVT – Display VTOC Line 1 of 8
Unit 0513 VOLSER PRDB10 3390 with 3339 cyls, 15 trks/cyl, 58786 bytes/trk
— Data Set Name — sorted by NAME —– Ext Begin-end Reltrk,
1…5…10…15…20…25…30…35…40…. seq Cyl-hd Cyl-hd numtrks
*** VTOC EXTENT *** 0 0 1 13 0 1,195
KCI01.DMNSNDSK.DAKMSTR.INDEX 0 17 0 25 0 255,121
KCI01.DMNSNDSK.GLKHS05.DATA 0 26 0 2299 14 390,34110
SYS1.VTOCIX.PRDB10 0 14 0 16 14 210,45
SYS1.VVDS.VPRDB10 0 13 1 13 10 196,10
*** FREE EXTENT *** 0 13 11 13 14 206,4
*** FREE EXTENT *** 0 25 1 25 14 376,14
*** FREE EXTENT *** 0 2300 0 3338 14 34500,15585
*** This volume is currently 68 percent full with 15603 tracks available
Case4. Ditto batch VTOC listing with job DITTOVT
– JOB DITTOVT execution:
//DITTOVT JOB (9999,IPO,10,10),
// ‘OPERATOR’,
// ,
// MSGCLASS=X,
// MSGLEVEL=(1,1),
// TIME=1440
//*
//LISTVT EXEC PGM=DITTO
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
$$DITTO DVT OUTPUT=SYSPRINT,VOLSER=PRD001
//*
– JESS Output Result Analyse
– ? DITTOVT – S SYSPRINT LISTVT:
DITTO/ESA for MVS
$$DITTO DVT OUTPUT=SYSPRINT,VOLSER=PRD001
DIT1160I Extraneous parameter OUTPUT ignored
* * * * Device 0500, VOLSER=PRD001, 3390 with 3339 cyls, 15 trks/cyl, 58786 byt
— Data Set Name — sorted by NAME —– Ext Begin-end Reltrk,
1…5…10…15…20…25…30…35…40…. seq Cyl-hd Cyl-hd numtrks
*** VTOC EXTENT *** 0 0 1 13 0 1,195
CATALOG.MVSICF1.VPRD001 0 17 0 21 14 255,75
CATALOG.MVSICF1.VPRD001.CATINDEX 0 13 11 13 11 206,1
KCI01.CARDS.CREDLINE.PYTINMAN.DATA 0 405 0 408 14 6075,60
KCI01.DMNSNDSK.DRIEXWK.INDEX 0 260 0 260 8 3900,9
KCI01.DMNSNDSK.DWIPLAM.X2007085 0 409 0 411 14 6135,45
KCI01.DMNSNDSK.DWIPLAM.X2007087 0 433 0 435 14 6495,45
KCI01.DMNSNDSK.DWIPLAM.X2007093 0 412 0 412 14 6180,15
KCI01.DMNSNDSK.EFIBFW.DATA 0 260 9 263 3 3909,40
KCI01.DMNSNDSK.EFIBFX0.DATA 0 263 4 272 8 3949,140
KCI01.DMNSNDSK.EFIBFX1.DATA 0 272 9 281 13 4089,140
—————————— etc.
Case5. Dump/restore disk volumes to/from tape
5.1. Dump full disk volumes to tape with job DUMPSIPL
Dump is performed of 4 full disk volumes to tape CB0970 on files DSN= BACKUP.WBC2MCC, BACKUP.WBC2RIC, BACKUP.WBC1MC3, BACKUP.WBC1RI3 using job DUMPSIPL:
//DUMPSIPL JOB (9999,IPO,10,10),
// ‘CORNERSTONE’,
// ,
// MSGCLASS=X,
// MSGLEVEL=(1,1),
// TIME=1440
//*
//DUMP1 EXEC PGM=ADRDSSU,REGION=8M
//SYSPRINT DD SYSOUT=*
//BC2MCC DD DISP=OLD,VOL=SER=BC2MCC,UNIT=3390
//BCK1 DD DISP=(,PASS),DSN=BACKUP.WBC2MCC,
// VOL=SER=CB0970,UNIT=300,
// LABEL=(1,SL),DCB=(BLKSIZE=64000)
//BC2RIC DD DISP=OLD,VOL=SER=BC2RIC,UNIT=3390
//BCK2 DD DSN=BACKUP.WBC2RIC,
// DISP=(,KEEP),VOL=REF=*.BCK1,
// UNIT=AFF=BCK1,
// LABEL=(2,SL),DCB=(BLKSIZE=64000)
//BC1MC3 DD DISP=OLD,VOL=SER=BC1MC3,UNIT=3390
//BCK3 DD DSN=BACKUP.WBC1MC3,
// DISP=(,KEEP),VOL=REF=*.BCK1,
// UNIT=AFF=BCK1,
// LABEL=(3,SL),DCB=(BLKSIZE=64000)
//BC1RI3 DD DISP=OLD,VOL=SER=BC1RI3,UNIT=3390
//BCK4 DD DSN=BACKUP.WBC1RI3,
// DISP=(,KEEP),VOL=REF=*.BCK1,
// UNIT=AFF=BCK1,
// LABEL=(4,SL),DCB=(BLKSIZE=64000)
//SYSIN DD *
DUMP INDDNAME(BC2MCC) –
OUTDDNAME(BCK1) OPT(4) FULL COM RESET –
ALLDATA(*) ALLEXCP
DUMP INDDNAME(BC2RIC) –
OUTDDNAME(BCK2) OPT(4) FULL COM RESET –
ALLDATA(*) ALLEXCP
DUMP INDDNAME(BC1MC3) –
OUTDDNAME(BCK3) OPT(4) FULL COM RESET –
ALLDATA(*) ALLEXCP
DUMP INDDNAME(BC1RI3) –
OUTDDNAME(BCK4) OPT(4) FULL COM RESET –
ALLDATA(*) ALLEXCP
IF LASTCC = 0 –
THEN WTO ‘DUMP OF BC2MCC TO TAPE COMPLETED SUCCESSFULLY’
ELSE WTO ‘DUMP OF BC2MCC TO TAPE WAS UNSUCCESSFUL’
5.2. Restore from tape dump files to same disk volumes initialized with the same volume names using job RESTSIPL
From tape CB0970 4 dump files DSN= BACKUP.WBC2MCC, BACKUP.WBC2RIC, BACKUP.WBC1MC3, BACKUP.WBC1RI3full are restored on the same disk volumes to restore the old contents if damaged (or on volumes initialized with the same volume names) BC2MCC, BC2RIC, BC1MC3, BC1RI3 using job RESTSIPL:
//RESTSIPL JOB (9999,IPO,10,10),
// ‘CORNERSTONE’,
// ,
// MSGCLASS=X,
// MSGLEVEL=(1,1),
// TIME=30
//RESTORE EXEC PGM=ADRDSSU,REGION=8M
//SYSPRINT DD SYSOUT=*
//DASD1 DD DISP=OLD,UNIT=3390,VOL=SER=BC2MCC
//DASD2 DD DISP=OLD,UNIT=3390,VOL=SER=BC2RIC
//DASD3 DD DISP=OLD,UNIT=3390,VOL=SER=BC1MC3
//DASD4 DD DISP=OLD,UNIT=3390,VOL=SER=BC1RI3
//BCK1 DD DSN=BACKUP.WBC2MCC,
// DISP=(,PASS),VOL=SER=CB0970,
// UNIT=300,
// LABEL=(1,SL),DCB=(BLKSIZE=64000)
//BCK2 DD DSN=BACKUP.WBC2RIC,
// DISP=(,KEEP),VOL=REF=*.BCK1,
// UNIT=AFF=BCK1,
// LABEL=(2,SL),DCB=(BLKSIZE=64000)
//BCK3 DD DSN=BACKUP.WBC1MC3,
// DISP=(,KEEP),VOL=REF=*.BCK1,
// UNIT=AFF=BCK1,
// LABEL=(3,SL),DCB=(BLKSIZE=64000)
//BCK4 DD DSN=BACKUP.WBC1RI3,
// DISP=(,KEEP),VOL=REF=*.BCK1,
// UNIT=AFF=BCK1,
// LABEL=(4,SL),DCB=(BLKSIZE=64000)
//SYSIN DD *
RESTORE OUTDDNAME(DASD1) –
INDDNAME(BCK1) PURGE
RESTORE OUTDDNAME(DASD2) –
INDDNAME(BCK2) PURGE
RESTORE OUTDDNAME(DASD3) –
INDDNAME(BCK3) PURGE
RESTORE OUTDDNAME(DASD4) –
INDDNAME(BCK4) PURGE
5.3. Restore from tape dump files to spare disk volumes SP1902, SP1903, SP1904, SP1905 with job RESTSTK
The 4 spare volumes SP1902 , SP1903, SP1904, SP1905 are used to restore from tape CB0971 the dumped volumes BC1S13, PRD501, PRD801, BC2RIC using job RESTSTK:
//RESTSTK JOB (9999,IPO,10,10),
// ‘CORNERSTONE’,
// ,
// MSGCLASS=X,
// MSGLEVEL=(1,1),
// TIME=30
//RESTORE EXEC PGM=ADRDSSU,REGION=8M
//SYSPRINT DD SYSOUT=*
//DASD1 DD DISP=OLD,UNIT=3390,VOL=SER= SP1902
//DASD2 DD DISP=OLD,UNIT=3390,VOL=SER= SP1903
//DASD3 DD DISP=OLD,UNIT=3390,VOL=SER= SP1904
//DASD4 DD DISP=OLD,UNIT=3390,VOL=SER= SP1905
//BCK1 DD DSN=BACKUP.WBC1S13,
// DISP=(,PASS), VOL=SER=CB0971,
// UNIT=300,
// LABEL=(1,SL),DCB=(BLKSIZE=64000)
//BCK2 DD DSN=BACKUP.WPRD501,
// DISP=(,KEEP),VOL=REF=*.BCK1,
// UNIT=AFF=BCK1,
// LABEL=(2,SL),DCB=(BLKSIZE=64000)
//BCK3 DD DSN=BACKUP.WPRD801,
// DISP=(,KEEP),VOL=REF=*.BCK1,
// UNIT=AFF=BCK1,
// LABEL=(3,SL),DCB=(BLKSIZE=64000)
//BCK4 DD DSN=BACKUP.WBC2RIC,
// DISP=(,KEEP),VOL=REF=*.BCK1,
// UNIT=AFF=BCK1,
// LABEL=(4,SL),DCB=(BLKSIZE=64000)
//SYSIN DD *
RESTORE OUTDDNAME(DASD1) –
INDDNAME(BCK1) PURGE
RESTORE OUTDDNAME(DASD2) –
INDDNAME(BCK2) PURGE
RESTORE OUTDDNAME(DASD3) –
INDDNAME(BCK3) PURGE
RESTORE OUTDDNAME(DASD4) –
INDDNAME(BCK4) PURGE
Incoming search terms:
- vtoc in mainframe
- mainframe utilities
- adrdssu utility in jcl
- mainframe utilities list
- adrdssu utility mainframe
- vtoc in mainframes
- ditto utility mainframe
- mainframe tape utilities
Comments
No comments yet, be the first to add one!