Sei sulla pagina 1di 352

TOPIC 1 : VSAM Data Set Organisation and Structure

Topic Objectives Terminal Objectives : After attending this topic the student should know the various types of VSAM data sets, including specific terminology and distinct characteristics of each data set type.

Enabling Objectives:: Upon completion of this topic the student should be able to :
* Explain the function of control intervals and control areas. * Describe the data set organizations supported by VSAM:LDS,RRDS,ESDS, KSDS. * State the purpose of control interval and control area splits and describe how they are accomplished. * Estimate DASD space requirements for VSAM clusters.

VIRTUAL STORAGE ACCESS METHOD


RECORD MANAGEMENT ICF CATALOG VSAM DATA SET

CATALOG MANAGEMENT PLUS ACCESS METHOD SERVICES

VSAM BUILDING BLOCKS


1. LR

2.

LR

LR

LR

LR

3.

LR
LR LR LR LR

LR
LR LR LR LR

LR
LR LR LR LR

LR
LR LR LR LR

CONTROL INTERVAL FORMAT FOR NON-LDS CLUSTERS

FORMAT LR1 LR2 LRn UNUSED RDF PLACE n RDF RDF CI 1 2 DF

EXAMPLE 100 100 100 150 BYTESBYTES BYTESBYTES UNUSED SPACE RDF3 RDF2 RDF1 CIDF

LOGICAL RECORD INTERVAL

LR1 LR2 CI

LR3

LR2 WORK AREA ADDRESS SPACE

VSAM CLUSTER TYPES

* LINEAR DATA SET * RELATIVE RECORD DATA SET * ENTRY SEQUENCED DATA SET * KEY SEQUENCED DATA SET

LDS RRDS ESDS KSDS

LINEAR DATA SET (LDS)


CI CI

DATA DATA DATA DATA

DATA CA

CI CI

CI

DATA DATA DATA DATA

DATA CA

CI CI CI

RELATIVE RECORD DATA SET (RRDS) (Fixed Length Records)


CI 0 SLOT1 SLOT2 SLOT6 SLOT7 SLOT11 SLOT3 SLOT8 SLOT4 SLOT9 SLOT14 SLOT19 SLOT5 SLOT10 SLOT15 SLOT20

DATA CA

CI 1 CI 2 CI 3

SLOT12 SLOT13 SLOT18

SLOT16 SLOT17

CI 0

SLOT21 SLOT22 SLOT26 SLOT27 SLOT31 SLOT32 SLOT36 SLOT37

SLOT23 SLOT28 SLOT33 SLOT38

SLOT24 SLOT29 SLOT34 SLOT39

SLOT25 SLOT30 SLOT35 SLOT40

DATA CI 1 CA
CI 2 CI 3

TYPICAL RRDS PROCESSING


APPLICATION PROGRAM RRDS
29 25 26 30 27 24 CI 31 32 28 CI CI CI

GETRECORD 25
21 17 18 22 19 23 20

CONTROL AREA 2 13 9 5 1 2 6 3 10 7 4 14 11 8 CI 15 12 CI SLOT 8 16 CI CI

CONTROL AREA 1

ENTRY SEQUENCED DATA SET (ESDS)


CI 1 RECORD 1 CI2 RECORD 5 RECORD 6 RECORD 7
UNUSED RECORD 8 SPACE

RECORD 2

RECORD 3

RECORD 4

UNUSED SPACE RBA

RR C DD I F F D F

R R R RC D D D DI F F F F D F

RBA 4096

CI3 RECORD 9 RECORD 10


UNUSED SPACE
RR C DD I F F D F

RBA 8192

CI4
UNUSED SPACE RBA 12288

TYPICAL ESDS PROCESSING


APPLICATION

CONTROL AREA

PROGRAM GET NEXT CONTROL AREA2

CI

CONTROL AREA1
R9 R6 R4 R1 R2 R5 R3 CONTROL INTERVAL R7 R10 R8

R15

R16

R17

CI
CI

R11

CI CI

CI

SPANNED RECORDS

RECORD1

RECORD 1 SEGMWENT 1

R D F 2

R D F 1

C I D F

RECORD 1 SEGMENT 2

R D F 2

R D F 1

C I D F

RECORD

R R UNUSED D D 1 SPACE F F SEGMENT 2 1 3

C I D F

ACCESSING SPANNED RECORDS

DATA BUFFERS
CI 1 CI2 CI3

WORK AREA

ADDRESS AREA

KEY SEQUENCED DATA SET (KSDS)


INDEX COMPONENT

DATA COMPONENT

DATA / INDEX RELATIONSHIP


INDEX COMPONENT
IS1

INDEX SET

IS 2 SS1 SS2 SS3 SS4

IS 3 SS5 SS6

SEQU. SET

DATA COMPONENT
CA 1 CI 1 CI 2 CI 3 CI 4 CA 2 CI1 CI2 CA 3 CI 1 CI 2 CA 4 CI 1 CI 2 CA 5 CI 1 CI 2 CA 6 CI 1 CI 2

KSDS ACCESS
INDEX COMPONENT

079

236

007

021

079

FS

099

124

236

FS

DATA COMPONENT 001 021 004 007 084 087 111 099 124

008 012 018 021

087

079

238

LOADING A KSDS

4037

4065

4077

FS

CI 0

4012

4023

4034

4037

FREE SPACE

CI 1 DATA CA CI 2

4041

4050

4052

4065

FREE SPACE

4072

4073

4075

4077

FREE SPACE

CI 3

FREE SPACE

UPDATING A KSDS
INSERT 4058 SEQUENCE SET CI 4037 4065 4077 FS

CI 0 4012

4023

4034

4037

FREE SPACE

CI 1 4041 DATA CA

4050

4052

4058

4065

CI 2 4072

4073

4075

4077

FREE SPACE

CI 3

FREE SPACE

CONTROL INTERVAL SPLIT


SEQUENCE SET CI 4037 DATA SET CI 0 4012 4041 4072 4023 4046 4073 4034 4050 4075 4037 FREESPACE 4050 4065 4077 .. . .

CI 1

FREESPACE 4077 FREESPACE

CI 2

CI 3

4052

4058

4065

FREESPACE

CONTROL AREA SPLIT INSERT 4074


BEFORE
SEQUENCE SET CI 4037 4050 4065

AFTER
INDEX SET CI 4077 SEQUENCE SET CIs

CI 0 4012 CI 1 4041 CI 2 4072 CI3 4052

4023 4046 4073 4058

4034 4050 4075 4065 CA 1

4037

CI 0 CI 1 CI 2 CI 3

4076

4076

CA 1

CI 0
CI 1 CI 2 CI 3 CA 2

ALTERNATE INDEX

AIX 1 BASE CLUSTER (DEPT.NO.)

AIX 2

(NAME)

(SS NO.)
3235 NEWTON $ .. 3240 JOHN $ .. 3247 MURTHY $ .. 3247 DUTT $ .. 3247 PETTY $ .. . . MURTHY 3247 $ ... ARNOLD 4711 $ DUTT 3247 $ .. . . . .

015-35-7890 JOHN $ 183-96-4116 MURTHY $ . 235-04-2372 PETTY $ . . .

WHICH DATA SET FORMAT

?
?

?
?

DATA SET SPACE ALLOCATION

RECORDS TRACKS CYLIDERS KILOBYTES MEGABYTES

(PRIMARY [ , SECONDARY] )

EXAMPLES :

RECORD ( 2000, 5) TRACKS (100, 3) CYLINDERS ( 10,1) CYLINDERS ( 1 ) KILOBYTES ( 200 20 ) MEGABYTES ( 4 1)

CONTROL AREA SIZE


DETERMINED BY VSM :
ALLOCATON
CYLINDERS

CA SIZE

1 CYLINDER * SMALLER OF PRIMARY AND SECO-NDARY ( IF SPECIFIED ) * NOT TO EXCEED 1 CYLIDER

TRACKS / RECORDS

EXAMPLES :
ALLOCATION
TRACKS (100, 3) RECORDS (2000, 5) KILOBYTES ( 200 10 ) MEGABYTES (4 1 )

CA SIZE

KSDS IMBED OPTION

IS

INDEX COMPONENT

INDEX COMPONENT

SS1 IS SS2 DATA SS1 SS1 SS1 SS1 SS1 DATA SS2 SS2 SS2 SS2 SS2 DATA

DATA COMPONENT

DATA

DATA COMPONENT

NOIMBED
(DEFAULT)

IMBED

DATA SET SIZING

5.

NUMBER OF CYL / TRK NEEDED

4.

NUMBER OF

CA s NEEDED

3.

NUMBER OF CI s PER CA

2 .

NUMBER OF CI s NEEDED

1 .

NUMBER OF RECOEDS PER CI

PHYSICAL BLOCKS
CONTROL INTERVAL 1 CONTROL INTERVAL 2 CONTROL INTERVAL 3

PB PB PB PB

PB PB

PB

PB

PB

PB

PB

PB

TRACK 1

TRACK 2

TRACK 3

TRACK 4

PHYSICAL BLOCK SIZE


CISZ PHYSICALBLOCK SIZE 3390 3380 512 1024 1536 2048 2560 3072 3584 4096 4608 5120 5632 6144 6656 7168 7680 512 1024 1536 2048 2560 3072 3584 4096 4608 5120 5632 6144 6656 7168 7680 PHYSICAL BLOCKS PER TRACK 3390 3380 49 33 26 21 17 11 13 12 10 9 9 8 7 7 6 46 31 23 18 15 13 11 10 9 8 7 7 6 6 5 10240 12288 14336 16384 CISZ CONTD. PHYSICAL BLOCK PHYSICAL BLKS SIZE PER TRACK 3390 10240 12288 7168 16384 3380 10240 6144 14336 8192 3390 5 4 7 3 3380 4 7 3 5

512 1024 1536 2048 2560 3072 3584 4096 4608 5120 5632 6144 6656 7168 7680

18432
20480 22528 24576 26624 28672 30720 32768

18432
10240 5632 24576 26624 7168 10240 16384

6144
20480 22528 6144 6656 14336 6144 8192

3
5 9 2 2 7 5 3

7
2 2 7 6 3 7 5

8192

8192

8192

DATA SET SIZING WORKSHEET 1


STEP 1: NUMBAR OF RECORDS FIXED LENGTH KSDS OR ESDS VARIABLE LENGTH KSDS OR ESDS RRDS LDS PER CI

CISZ-(CISZ * CIFSPC) -10 RECIRD LENGTH (ROUND DOWN) CISZ - (CISZ * CIFSPC) - 4 AVG.RECORD LENGTH + 3 (ROUND DOWN) 1

STEP 2: NUMBER OF CI s NEEDED


TOTAL NUMBER OF RECORDS STEP 1 RESULT (ROUND UP)

DATA SET SIZING WORKSHEET 2


STEP 3 : NUMBER OF CI s PER CA
NOIMBED: (NUMBER OF CONTROL INTERVALS/TRACK) * (NUMBER OF TRACKS/CA) IMBED: (NUMBER OF CONTROL INTERVALS/TRACK) * (KSDS ONLY) [( NUMBER OF TRACKS/CA) - 1] (ROUND DOWN)

STEP 4: NUMBER OF CA s NEEDED


STEP 2 RESULT

(STEP 3 RESULT) * (1 - CAFSPC)


(ROUND UP)

STEP 5: NUMBER OF CYL/TRK NEEDED


(CA SIZE) * (STEP 4 RESULT)
IF CA SIZE = 1 CYL, USE CYL ALLOCATION IF CA SIZE < 1 CYL, USE TRK ALLOCATION

LDS SIZING
ASSUMPTIONS :

* 1000 - 4K CI s NEEDE * CA SIZE - 1 CYL

* DASD - 3380

ALLOCATION:

ESDS SIZING
ASSUMPTIONS: * CISZ -2K * RECORD SIZE - 200 BYTES * CA SIZE - 1 TRACK * DASD - 3380 * NUMBER OF RECORDS - 6000 ALLOCATION:

RRDS SIZING
ASSUMPTIONS: * CISZ - 4K * RECORD SIZE - 100 BYTES (FIXED LENGTH) * CA SIZE - 3380

* NUMBER OF RECORDS - 6000

ALLOCATION:

KSDS DATA COMPONENT SIZING


ASSUMPTIONS: * DATA CISZ - 4096 * RECORD SIZE - 200 BYTES * NOIMBED * CA SIZE - 1 CYL * DASD - 3380 * NUMBER OF RECORDS - 100,000 * FREE SPACE - CI - 10% CA - 5% ALLOCATION:

KSDS INDEX COMPONENT SIZING


CHALLENGE: * ESTIMATING INDEX KEY COMPRESSION

ALTERNATIVE:

* ACCURATELY SIZE DATA COMPONENT


* DO NOT SPECIFY INDEX COMPONENT ALLOCATION * VSAM ESTIMATES INDEX SIZE BASED ON DATA COMPONENT SIZE AND PROBABLE KEY COMPRESSION

RECORD ALLOCATIONS
PRO * EASY TO SPECIFY * INDEPENDENT OF DASD ARCHITECTURE

CON

* MAY NOT ACCOUNT FOR FREESPACE * MAY RESULT IN SMALL CA SIZE

DATA SET STRUCTURE REVIEW


2799 4200 6705 4200 2344 2383 D 1334 1350 1400 E

{{ { { { {
H
1021 1001 1052 1022

1333

2383 1333 B 1009 1080 1033 C

2799

1061 A

1401

}F

1002 1060 1025

1402

1424 1428

2345 2352 2363

Topic Objectives
TERMINAL OBJECTIVE

After attending this topic the student should understand the use of ICF(Integrayted Catalog Facility) catalogs in the MVS environ ment. Enabling objectives:

Upon completion of this topic the student should be able to:


* State the purpose and basic contents of the Master Catalog. * Describe how the master catalog is located at IPL time. * State the purpose and basic content of user catalogs. * Describe how a data set name is used in catalog search. * Create an alias to locate data sets in a user catalog.

MVS/XA & MVS/ESA


SYSRES SYS1 NUCEUS SYSCAT xx

CATALOG OVERVIEW
MVS/ESA

ICF MASTER CATALOG

SYS1 PARMLIB LOADxx

ICFUSER CATALOGS

VSAM DATA SETS

NON -VSAM DATASETS

VSAM DATASETS

NON -VSAM DATASETS

CATALOG BASICS INDEX COMPONENT

ICF CATALOG

DATA COMPONENT

CLUSTER DATA INDEX

CATALOG STRUCTURE

VSAM.DATA VVDS

NONV.DATA

VTOC

VTOC

BCS VVDS VTOC

CATALOG INFORMATION

EXTENT INFO.

VTOC BCS

}
EXTENT INFO. CI SIZE REC.SIZE

CLUSTER NAME DEVICE TYPE VOLSER

VVDS

. . .

. . .

DEFAULT COMPONENT NAMES


VDD yyddd. Taaaaaaa Cluster HLQ. Tbbbbbbb. VID B E F O R E M V S/ D F P 3 . 1

First half of system time stamp Julian date VDD=data component VID=index component Last half of system time stamp(aaaaaaa bbbbbbb) Cluster highlevel qualifier

DEFAULT COMPONENT NAMES


NLBE08X.TEST.VSAM.CLUSTER NLBE08X.TEST.VSAM.DATA NLBE08X.TEST.VSAM.INDEX M V S/ D F P 3 . 1 & H I G H E R

NLBE08X.TEST11.VERY.LONG.DSNAME.VSAM.DATASET NLBE08X.TEST11.VERY.LONG.DATA NLBE08X.TEST11.VERY.LONG.INDEX

DEFINE ALIAS COMMAND

DEFINE ALIAS

(NAME (alias) RELATE (BCS Name))

WHERE: alias = up to four dsname qualifiers BCS name = user catalog that is to contain dsnames beginning with alias name

DEFINE ALIAS EXAMPLE


MCAT ALIAS: GL ALIAS: AP ALIAS: AR . .

UCAT1

UCAT 2

UCAT 3

AR.CUSTOMER AR BILLING

AP.MASTER AP.PAYMENTS

GL.MASTER

LOCATING OR CATALOGING A DATA SET


START

IDCAMS CATALOG

SEARCH ONLY THE SPECIFIED CATALOG

N STEPCAT OR JOBCAT N QUALIFIED NAME Y Y SEARCH STEPCAT or JOBCAT (not both)

upto 4 qualifiers defined as ALIAS? N

SEARCH THE RELATED CATALOG

SEARCH THE MASTER CATALOG

JOBCAT AND STEPCAT

//SAMPLE //JOBCAT // //STEP1 //STEPCAT //

JOB DD DISP = {OLD/ SHR}, DSNAME = usercatname EXEC PGM = SAMP1 DD DISP = {OLD/SHR), DSNAME = usercatname

Topic 3: IDCAMS Commands Part 1

Topic objectives

Terminal objective:
After attending this topic the student should know how to invoke and use the Access Method Services program,IDCAMS.

Enabling objectives: Upon completion of this topic the student should be able to :
* * * * Code the JCL needed to run IDCAMS. Code DEFINE CLUSTER for specific VSAM data set organizations. Code LISTCAT to format entries from a catalog. Using the Access Method Services manual, interpret the output from a LISTCAT.

ACCESS METHOD SERVICES


CREATE VSAM OBJECTS

LIST CATALOG INFOFMAT

LOADING UNLOADING

IDCAMS
MODIFY DATASET ATTRIBUT ES
DELETE VSAM OBJECTS

REPRO

COPYING

LIST DATA SETS

INVOKING IDCAMS BASIC IDCAMS JCL


//---------------JOB---------//STEP1 EXEC PGM = IDCAMS[ .REGION=nnnnK] //SYSPRINT DD SYSOUT=A //SYSIN DD * DEFINE CLUSTER . . LISTCAT

TSO COMMANDS
READY DEFINE CLUSTER -: LISTCAT

AMS COMMAND SYNTAX


COMMAND PARAMETER TERMINATOR

SERVICE REQUESTED

FURTHER DESCRIBES COMMAND

END OF COMMAND

MARGINS
SEPARATORS COMMENTS CONTINUATION TERMINATOR

DEFAULT TO 2 & 72 CAN BE CHANGED BY PARM BLANK, COMMA OR COMMENT /*_ _ _ _ _ _ _ _ _ _ _*/ HYPHEN, PLUS SIGN SEMICOLON OR ABSENCE OF CONTINUATION MARK

COMMAND SYNTAX EXAMPLE


//--------------JOB----------------//EXAM EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * DEFINE CLUSTER (NAME(EXAMPLE .KSDS 1) VOLUMES(EDPAK 8) FREESPACE (20 10) RECORDSIZE (100 100) /* FIXED LENGTH */ KEYS(5 4) DATA (NAME(EXAMPLE.KSDS1.DATA) CONTROL * INTERVALSIZE (4096) CYLINDERS (5 1) INDEX (NAME(EXAMPLE.KSDS1.INDEX) IMBED) LISTCAT ENTRIES (EXAMPLE KSDS 1) ALL

INCORRECT SYNTAX
//------------------JOB-----------------//TEST EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT =A //SYSIN DD * DEFINE CLUSTER (NAME(TSOLA48.PROD.BILLING.KSDS2) INDEXED VOLUMES(EDPAK8)) DATA (NAME(TSOLA48.PROD.BILLING.KSDS2.DATA)) FREESPACE (20 10) IDC3211I KEYWORD FREESPACE IS IMPROPER RECORDSIZE(100 100) KEYS(5 4) CISZ(4096) CYLINDERS(2 1) INDEX (NAME(TSOLA48.PROD.BILLING.KSDS2.INDEX) CISZ(10240) IMBED) IDC32021 ABOVE TEXT BYPASSED UNTIL NEXT COMMAND,COND. CODE IS 12

DEFINE SPECIFICATIONS
DEFINE CLUSTER :

* DATA SET NAME * DATA SET TYPE

* SPACE ALLOCATIN - Where ? - How much ?


* DATA SET ATTRIBUTES

DEFINE CLUSTER OVERVIEW

DEFINE CLUSTER [DATA [INDEX [CATALOG

( ( (

) )-] )-] )-]

-- OR -DEF CL [DATA [IX [CAT ( ( ( ( )-] )-] )-] )

DEFINE CLUSTER PARAMETERS , PART 1


INDEXED DATA LINEAR MODEL ORGANIZATION NONINDEXED NUMBERED

ALLOCATION

NAME CYLINDERS TRACKS RECORDS KILOBYTES MEGABYTES VOLUMES

CONTROLINTERVALSIZE BUFFERSPACE RECORDSIZE SPANNED NONSPANNED

FILE

REUSE NON REUSE

DEFINE CLUSTER PARAMETERS, PART 2


DATA INTEGRITY
SPEED RECOVERY WRITECHECK NOWRITECHECK SHAREOPTIONS ERASE NOERASE EXCEPTIONEXIT MASTERPW CONTROLPW UPDATEPW READPW CODE ATTEMPTS AUTHORIZATION FOR TO OWNER

PROTECTION

RETENTION OWNERSHIP

KSDS ONLY

KEYRANGES KEYS IMBED NOIMBED REPLICATE NOREPLICATE FREESPACE ORDERED UNORDERED

DEFINE CLUSTER PARAMETERS, PART 3

Only when DFSMS is active :

DATA CLASS STORAGE CLASS MANAGEMENT CLASS

DEFINE CLUSTER REQUIRED PARAMETERS

DEFINE CLUSTER ( NAME ( CYLINDERS( KILOBYTES( [ VOLUMES ( )

) ) )] -

)RECORDS ( ) TRACKS ( MEGABYTES ( )-

)-

VOLUMES
DEFINE CLUSTER . . VOLUMES (volser [volser..]) . . .

EXAMPLES : VOL (PUB101)

PUB101

PRIME

PUB101 VOL (PUB101 PUB102)

PUB102

PRIME

CANDIDATE

SPACE ALLOCATION PARAMETERS


ALLOCATION
DEFINE CLUSTER . . ALLOCATION . . DATA . . ALLOCATION . . INDEX . . ALLOCATION . . IS ONE OF THE FOLLOWING:

* CYL(primary[secondary] ) * TRK (primary [secondary] ) * REC (primary [secondary] ) * KB (primary [secondary] ) * MB (primary [secondary] )

ALLOCATION

AT :

* CLUSTER LEVEL * DATA LEVEL * DATA AND INDEX LEVEL

RECORD SIZE

FORMAT : RECORDSIZE ( average maximum)

EXAMPLES : RECSZ (100 100) RECORDSIZE /* FIXED LENGTH */

(72 150 ) /* VARIABLE LENGTH */

CONTROL INTERVAL SIZE


DEFINE CLUSTER . . . CONTROL INTERVAL SIZE (size) . . . DATA . . . DEFINE CLUSTER . . . DATA CONTROLINTERVALSIZE (size) . . . INDEX COTROLINTERVALSIZE . (size) .

VALID CONTROL INTERVAL SIZES: * MULTIPLES OF .5K UP TO 8K * MULTIPLES OF 2K UP TO 32K

COTROL INTERVAL SIZE GUIDELINES

* SEQUENTIAL / SKIP SEQUENTIAL LARGER DATA CI IMPROVES PERFORMANCE WITH THE TASK * DIRECT SMALLER DATA CI IMPROVES PERFORMANCE WITHIN THE TASK * SEQUENTIAL / SKIP SEQUENTIAL AND DIRECT SMALLER DATA CI MULTIPLE BUFFERS WHEN PROCESSING SEQUENTIALLY

KSDS ONLY : KEYS

KEYS (length offset)

Bytes 1-4
field 1

Bytes 5- 12
field 2

Bytes 13 -18
field 3

OFFSET 0
EXAMPLES : If field1 is key If field3 is key Default :

OFFSET 12

KEYS( 4 0) KEYS(6 12) KEYS(64 0)

KSDS ONLY: FREESPACE


FREESPACE (cipercent[capercent]) Default FREESPACE (0 0) USE OF FREE SPACE : DIRECT / SKIP SEQUENTIAL * FREE SPACE WILL ALWAYS BE USED SEQUENTIAL

* FREE SPACE WILL BE USED IF INSERTING IN FRONT OF FREESPACE THRESHOLD * FREE SPACE WILL BE PRESERVED IF - LOADING FILE - EXTENDING FILE - INSERTING AT END OF CI

FREE SPACE CONSIDERATIONS


LARGE FREE SPACE

* MORE DASD SPACE


* MORE I /O FOR SEQUENTIAL PROCESSING FOR SAME NUMBER OF RECORDS * MORE LEVELS OF INDEX FOR KSDS, SO POSSIBLE INCREASE IN RUN TIME FOR DIRECT PROCESSING NO MORE SPACE OR TOO LITTLE FREE SPACE

* MORE CI / CA SPLITS * AFTER SPLITS, POSSIBLY MORE TIME FOR SEQUENTIAL PROCESSING, BECAUSE FILE IS NOT IN PHYSICAL SEQUENCE

LISTCAT SPECIFICATIONS

blank LISTCAT CLUSTER DATA INDEX :

CREATION ( ) EXPIRATION (

ENTRIES ( ) LEVEL ( )

NAME HISTORY VOLUME ALLOCATION ALL

EXAMPLES: LISTCAT ENTRIES (EXAMPLE.KSDS1) ALL

LISTCAT LEVEL

(EXAMPLE.*. TEST) VOL

LISTCAT STRUCTURE
CLUSTER-----------------------------------------------------------------History.. Protection.. Associations..

DATA--------------------------------------------------------History Protection Associations Attributes Statistics. Allocations. Volume

INDEX-------------------------------------------------------History Protection Association. Attributes Allocations. Volume...

DEFINE LINEAR EXAMPLE

//-------------------------JOB-----------------------------//TEST EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = A //SYSIN DD * DEFINE CLUSTER ( NAME ( EXAMPLE . LINEAR ) LINEAR VOLUMES ( EDPAK 8 ) TRACKS ( 5 5 )) LISTCAT ENTRIES ( EXAMPLE . LINEAR ) ALL

LINEAR LISTCAT
LISTCAT ENTRIES (EXAMPLE . LINEAR) ALL CLUSTER ------- EXAMPLE . LINEAR IN-CAT ---- ICFCAT . EDPAK 8 HISTORY OWNER-IDENT----------(NULL) CREATION------------1989.045 RELEASE------------------2 EXPIRATION--------- 0000.00 PROTECTION-PSWD------(NULL) RACF-------------------(NO) ASSOCIATIONS DATA---------EXAMPLE. TBE20948. VDD89045 T9F DED61 DATA---------------EXAMPLE. TBE20948. VDD89045 T9F DED61 IN-CAT--------ICFCAT. EDPAK8 HISTORY OWNER-IDENT---------(NULL) CREATION------------1989.045 RELEASE----------------2 EXPIRATION-------- 0000.000 PROTECTION-PSWD-----(NULL) RACF------------------- (NO) ASSOCIATIONS CLUSTERS--EXAMPLE. LINEAR ATTRIBUTES KEYLEN-----------------0 AVGLRECL------------ 0 BUFSPACE-------8192 RKP-----------------------0 MAXLRECL------------ 0 EXCPEXIT--------(NULL) SHR OPTNS (1,3) RECOVERY UNIQUE NOERASE LINEAR NOWRITECHK UNORDERED NOERASE NONSPANNED STATISTICS REC-TOTAL------------0 SPLITS-CI-------------- 0 EXCPS--------------0 REC-DELETED--------0 SPLITS-CA--------------0 EXTENTS----------1 REC-INSERTED------0 FREESPACE-%CI------0 SYSTEM-TIMESTAMP. REC-UPDATED-------0 FREESPACE-%CA-----0 X00000000000000 REC-RETRIEVED----0 FREESPACE-BYTES--0 ALLOCATION SPACE-TYPE---------TRACK HI-ALLOC-RBA-------204800 SPACE-PRI------------5 HI-USED-RBA---------0 SPACE-SEC-----------5 VOLUME VOLSER---------------EDPAK 8 PHYREC-SIZE--------4096 HI-ALLOC-RBA---204800 DEVTYPE-------------X3010200 E PHYRECS/TRK------10 HI-USED-RBA-----0 VOLFLAG-------------PRIME TRACKS/CA---------5 EXTENTS LOW-CCHH-----------X0111000A LOW-RBA-----------0 TRACKS-------------5 HIGH-CCHH----------X0111000E HIGH-RBA----------204799

CISIZE------4096 CI/CA--------------------50 NOIMBED NOREPLICAT

EXTENT-NUMBER------1 EXTENT-TYPE------------X40

DEFINE ESDS EXAMPLE

//----------------------------JOB-------------------------//TEST EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = A //SYSIN DD * DEFINE CLUSTER ( NAME ( EXAMPLE . TEST . ESDS ) NIXD VOLUMES (EDPAK 8) CYL ( 5 5 )) LISTCAT ENTRIES ( EXAMPLE . TEST . ESDS ) ALL

ESDS LISTCAT
CLUSTER -----------------EXAMPLE . TEST . ESDS IN-CAT------------ICFCAT.EDPAK 8 HISTORY OWNER-IDENT----------------(NULL) CREATION-------1989.045 RELEASE------------------------2 EXPIRATION----0000.000 PROTECTION-PSWD------------(NULL) RACF--------------(NO) ASSOCIATIONS DATA--------EXAMPLE.T25BBEBE.VDD89045.T9FDED59 DATA-----------EXAMPLE.T25BBEBE.VDD89045.T9FDED59 IN-CAT-----ICFCAT.EDPAK 8 HISTORY OWNER-IDENT-----------(NULL) CREATION-------1989.045 RELEASE-------------------2 EXPIRATION----0000.000 PROTECTION-PSWD-------(NULL) RACF--------------(NO) ASSOCIATIONS CLUSTER--EXAMPLE.TEST.ESDS ATTRIBUTES KEYLEN---------------------0 AVGLRECL-----4089 BUFSPACE---------57344 CISIZE--------28672 RKP---------------------------0 MAXLRECL-----4089 EXCPEXIT----------(NULL) CI/CA---------22 SHROPTNS(1,3) RECOVERY UNIQUE NOERASE NONINDEXED..NOWRITECHK NOIMBED NOREPL ICATE STATISTICS REC-TOTAL----------------0 SPLITS-CI---------- 0 EXCPS----------------0 REC-DELETED------------0 SPLITS-CA--------- 0 EXTENTS------------1 REC-INSERTED-----------0 FREESPACE-%CI---0 SYSTEM-TIMESTAMP REC-UPDATED-----------0 FREESPACE-%CA--0 X00000000000000 REC-RETRIEVED--------0 FREESPC-BYTES--3153920 ALLOCATION SPACE-TYPE--------CYLINDER HI-ALLOC-RBA---3153920 SPACE-PRI----------5 HI-USED-RBA-----0 SPACE-SEC---------5 VOLUME VOLSER-------------EDPAK 8 PHYREC-SIZE------14336 HI-ALLOC-RBA----3153920 EXTENT-NUMBER----1 DEVTYPE----------X3010200E PHYRECS/TRKS----3 HI-USED-RBA------0 EXTENT-TYPE---------X40 VOLFLAG---------PRIME TRACKS/CA --------15 EXTENTS: LOW-CCHH-------X011F0000 LOW-RBA-----------0 TRACKS---------------75 HIGH-CCHH------X0123000E HIGH-RBA----3153919

DEFINE RRDS EXAMPLE

//-------------------------JOB------------------//TEST EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = A //SYSIN DD * DEFINE CLUSTER (NAME ( PROD.VENDOR.RRDS1 ) NUMBERED VOLUMES ( EDPAKS 8) RECORDSIZE (100 100) /* FIXED LENGTH */ CISZ (4096)) DATA (NAME (PROD.VENDOR.RRDS1.DATA ) CYLINDERS (5 1)) LISTCAT ENTRIES (PROD.VENDOR.RRDS1) ALL

RRDS LISTCAT
CLUSTER---------------PROD.VENDOR.RRDS1 IN-CAT--------ICFCAT.EDPAK8 HISTORY OWNER-IDENT------------(NULL) CREATION---------------1989.045 RELEASE--------------------2 EXPIRATION------------0000.000 PROTECTION-PSWD---------(NULL) RACF-----------------------(NO) ASSOCIATIONS DATA---------PROD.VENDOR.RRDS1.DATA DATA--------------PROD.VENDOR.RRDS1.DATA IN-CAT--------ICFCAT . EDPAK8 HISTORY OWNER-IDENT---------(NULL) CREATION---------------1989.045 RELEASE-----------------2 EXPIRATION------------0000.000 PROTECTION-PSWD------(NULL) RACF-----------------------(NO) ASSOCIATIONS CLUSTER--PROD.VENDOR.RRDS1 ATTRIBUTES KEYLEN-------------------0 AVGLRECL--------------100 RKP-------------------------0 MAXLRECL--------------100 RECORDS/CI-------------39 MAXRECS----------40894464 SHROPTNS(1,3) RECOVERY UNIQUE NOERASE UNORDERED NOREUSE NONSPANNED STATISTICS REC-TOTAL---------------0 SPLITS-CI------------------0 REC-DELETED-----------0 SPLITS-CA-----------------0 REC-INSERTED----------0 FREESPACE-%CI---------0 REC-UPDATED----------0 FREESPACE-%CA--------0 REC-RETRIEVED--------0 FREESPC-BYTES-----3072000 ALLOCATION SPACE-TYPE-------CYLIDER HI-ALLOC-RBA------3072000 SPACE-PRI-----------------5 HI-USED-RBA-------------0 SPACE-SEC----------------1 VOLUME VOLSER----------------EDPAK8 PHYREC-SIZE-----------4096 DEVTYPE--------------X3010200E PHYRECS/TRK----------10 VOLFLAG--------------PRIME TRACKS/CA--------------15 EXTENTS LOW-CCHH-----------X01240000 LOW -RBA----------------0 HIGH-CCHH----------X0128000E HIGH-RBA----------3071999

BUFSPACE-------------8192 EXCPEXIT-------------(NULL) NUMBERED NOWRITECHK

CISIZE----------------4096 CI/CA-----------------150 NOIMBED NOREPLICATE

EXCPS--------------------0 EXTENTS----------------1 SYSTEN-TIMESTAMP:X00000000000000

HI-ALLOC-RBA----3072000 HI-USED-RBA----------0

EXTENT-NUMBER-----1 EXTENT-TYPE--------X40

TRACKS-----------------75

DEFINE KSDS EXAMPLE 1


//-------------------------JOB------------------------//TEST EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = A //SYSIN DD * DEFINE CLUSTER ( NAME ( EXAMPLE.PROD.BILLING.KSDS1 ) INDEXED VOLUMES (EDPAK8) FREESPACE (20 10) RECORDSIZE (135 135) CISZ ( 4096) CYL (3 1) KEYS ( 8 72 )) LISTCAT ENTRIES ( EXAMPLE.PROD.BILLING.KSDS1) ALL

KSDS LISTCAT , PART 1


CLUSTER---------------EXAMPLE.PROD.BILLING.KSDS1 IN-CAT--------ICFCAT.EDPAK8 HISTORY OWNER-IDENT------------(NULL) CREATION---------------1989.045 RELEASE--------------------2 EXPIRATION------------0000.000 PROTECTION-PSWD---------(NULL) RACF-----------------------(NO) ASSOCIATIONS DATA---------EXAMPLE.T788A81A.VDO89045.T9FDED7A INDEX-------- EXAMPLE.T788AC12.VID89045.T9FDED7A DATA-------------- EXAMPLE.T788A81A.VDO89045.T9FDED7A IN-CAT--------ICFCAT . EDPAK8 HISTORY OWNER-IDENT---------(NULL) CREATION---------------1989.045 RELEASE-----------------2 EXPIRATION------------0000.000 PROTECTION-PSWD------(NULL) RACF-----------------------(NO) ASSOCIATIONS CLUSTER--EXAMPLE.PROD.BILLING.KSDS1 ATTRIBUTES KEYLEN-------------------8 AVGLRECL--------------135 RKP-------------------------72 MAXLRECL--------------135 SHROPTNS(1,3) RECOVERY UNIQUE NOERASE UNORDERED NOREUSE NONSPANNED STATISTICS REC-TOTAL---------------0 SPLITS-CI------------------0 REC-DELETED-----------0 SPLITS-CA-----------------0 REC-INSERTED----------0 FREESPACE-%CI---------20 REC-UPDATED----------0 FREESPACE-%CA--------10 REC-RETRIEVED--------0 FREESPC-BYTES-----1843200 ALLOCATION SPACE-TYPE-------CYLIDER HI-ALLOC-RBA------1843200 SPACE-PRI-----------------3 HI-USED-RBA-------------0 SPACE-SEC----------------1 VOLUME VOLSER----------------EDPAK8 PHYREC-SIZE-----------4096 DEVTYPE--------------X3010200E PHYRECS/TRK----------10 VOLFLAG--------------PRIME TRACKS/CA--------------15 EXTENTS LOW-CCHH-----------X00F30000 LOW -RBA----------------0 HIGH-CCHH----------X00F5000E HIGH-RBA----------1843200

BUFSPACE-------------12288 EXCPEXIT-------------(NULL) NUMBERED NOWRITECHK

CISIZE----------------4096 CI/CA-----------------150 NOIMBED NOREPLICATE

EXCPS--------------------0 EXTENTS----------------1 SYSTEN-TIMESTAMP:X00000000000000

HI-ALLOC-RBA---1843200 HI-USED-RBA----------0

EXTENT-NUMBER-----1 EXTENT-TYPE--------X40

TRACKS-----------------45

KSDS LISTCAT , PART 2


INDEX------------EXAMPLE.T788AC12.VID89045.T9FDED7A IN-CAT--------ICFCAT.EDPAK8 HISTORY OWNER-IDENT------------(NULL) CREATION---------------1989.045 RELEASE--------------------2 EXPIRATION------------0000.000 PROTECTION-PSWD---------(NULL) RACF-----------------------(NO) ASSOCIATIONS CLUSTER---EXAMPLE.PROD.BILLING.KSDS1
ATTRIBUTES KEYLEN-------------------8 RKP-------------------------72 SHROPTNS(1,3) RECOVERY NOREUSE STATISTICS REC-TOTAL---------------0 REC-DELETED-----------0 REC-INSERTED----------0 REC-UPDATED----------0 REC-RETRIEVED--------0 ALLOCATION SPACE-TYPE-------TRACK SPACE-PRI-----------------1 SPACE-SEC----------------1 VOLUME VOLSER----------------EDPAK8 DEVTYPE--------------X3010200E VOLFLAG--------------PRIME EXTENTS LOW-CCHH-----------X000C000B HIGH-CCHH----------X000C000E

AVGLRECL--------------0 MAXLRECL--------------4096 UNIQUE NOERASE

BUFSPACE-------------0 EXCPEXIT-------------(NULL) NOWRITECHK NOIMBED

CISIZE----------------4096 CI/CA-----------------10 NOREPLICAT UNORDERED

SPLITS-CI------------------0 SPLITS-CA-----------------0 FREESPACE-%CI---------0 FREESPACE-%CA--------0 FREESPC-BYTES-----40960 HI-ALLOC-RBA------40960 HI-USED-RBA-------------0

EXCPS--------------------0 INDEX: EXTENTS----------------1 LEVELS------------- 0 SYSTEM-TIMESTAMP:X00000000000000 ENTRIES/SECT ----12 SEQ-SET-RBA------0 HI-LEVEL-RBA-----0

PHYREC-SIZE-----------4096 PHYRECS/TRK----------10 TRACKS/CA--------------1 LOW -RBA----------------0 HIGH -RBA----------40959

HI-ALLOC-RBA---40960 HI-USED-RBA----------0

EXTENT-NUMBER-----1 EXTENT-TYPE--------X40

TRACKS-----------------1

DEFINE KSDS EXAMPLE 2


//----------------------JOB---------------------//TEST EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = A //SYSIN DD * DEFINE CLUSTER ( NAME ( PROD.BILLING.KSDS2) INDEXED VOLUMES ( EDPAK 8) ) DATA ( NAME (PROD.BILLING.KSDS2 .DATA ) FREESPACE (20 10) RECORDSIZE (100 100) KEYS (5 4 ) CISZ (4096 ) CYLINDERS ( 2 11 ) INDEX ( NAME (PROD.BILLING.KSDS2.INDEX ) IMBED )

DEFINE WITH MODEL

DEFINE

TEST DATA SET

MODELED AFTER

PROD DATA SET

DEFINE CLUSTER ( NAME ( TEST.BILLING.KSDS2 ) MODEL ( PROD.BILLING.KSDS2 ) VOLUMES ( EDPAK8 )) DATA ( NAME (TEST.BILLING.KSDS2.DATA) CYLINDERS (1 1 )) INDEX ( NAME (TEST.BILLING.KSDS2.INDEX ))

LISTCAT VARIATIONS PART 1


LISTCAT ENTRIES ( TECH.TEST.ESDS ) NAME CLUSTER-------------------------- TECH.TEST.ESDS IN-CAT------------------- ICFCAT.EDPAK8 DATA------------------------- TECH.TO379788.VDD89045.T9FDEDCD IN-CAT------------------- ICFCAT.EDPAK8

LISTCAT ENTRIES ( TECH.TEST.ESDS ) HISTORY CLUSTER-------------------------- TECH.TEST.ESDS IN-CAT ------------------- ICFCAT.EDPAK8 HISTORY OWNER-IDENT------ (NULL) CREATION------------1989.045 RELEASE------------2 EXPIRATION---------0000.000 DATA------------TECH.TO379788.VDD89045.T9FDEDCD IN-CAT----- ICFCAT.EDPAK8 HISTORY OWNER -IDENT------(NULL) CREATION------------1989.045 RELEASE----------------- 2 EXPIRATION---------0000.000 S

LISTCAT ENTRIES ( TECH.TEST.ESDS) VOLUME CLUSTER ------------------TECH.TEST.ESDS IN-CAT ----------- ICFCAT.EDPAK8 HISTORY OWNER-IDENT --------------(NULL) CREATION---------------1989.045 RELEASE-----------------------2 EXPIRATION-------------0000.000 DATA-------------------TECH.T0379788.VDD89045.T9FDEDCD IN-CAT-------------ICFCAT EDPAK8 HISTORY OWNER-IDENT--------------(NULL) CREATION----------------1989.045 RELEASE----------------------2 EXPIRATION-------------0000.000 VOLUMES VOLSER-----------------------EDPAK8 DEVTYPE------------------X3010200E LISTCAT ENTRIES (TECH.TEST.ESDS) ALLOCATION CLUSTER ----------------------------------TECH.TEST.ESDS IN-CAT---------------------------ICFCAT.EDPAK8 HISTORY OWNER-IDENT-------------(NULL) CREATION-----------------1989.045 RELEASE---------------------2 EXPIRATION-------------- 0000.000 DATA-------------TECH.T0379788.VDD89045.T9FDEDCD IN-CAT-------ICFCAT EDPAK8 HISTORY OWNER-IDENT-------------(NULL) CREATION-----------------1989.045 RELEASE---------------------2 EXPIRATION--------------0000.000 ALLOCATION SPACE-TYPE-------------CYLINDER HI-ALLOC-RBA----------3153920 SPACE-PRI-------------------5 HI-USED-RBA------------0 SPACE-SEC------------------5 VOLUME VOLSER-------------------EDPAK8 PHYREC-SIZE------------14336 HI-ALLOC-RBA---------3153920 DEVTYPE----------------X3010200E PHYRECS/TRK ----------3 HI-USED-RBA------------0 VOLFLAG---------------PRIME TRACKS/CA--------------15 EXTENTS LOW-CCHH-------------X011F0000 LOW -RBA-----------------0 TRACKS--------------------75 HIGH-CCHH-------------X0123000E HIGH -RBA-----------3153919

LISTCAT VARIATIONS PART 2

EXTENT-NUMBER-------1 EXTENT-TYPE----------X40

TOPIC 4 : JCL for VSAM


Topic objectives Terminal objective: After attending this topic the student should know how to use Job Control Language and SMS-facilities to establish simple VSAM clusters. Enabling objectives: Upon completion of this topic the student should be able to: * Describe the additional JCL parameters supporting VSAM clusters. * Use information from a data class to specify the characteristics of the VSAM cluster

Additional JCL Facilities - overview

From DFP V3 and up : VSAM Cluster can be : * Created * Deleted through JCL

SMS must be active

Create VSAM Data Set through JCL //DD statement

with new parameters


and / or

MVS-allocation

info from DATA CLASS

JCL parameters, new to VSAM ES KS RR LS

* RECORD =

* KEYOFF = offset -to-key (for KSDS only) * KEYLEN = bytes (for KSDS and some non-VSAM data sets)

Other parameters, allowed for VSAM


Old : DSNAME DISP

New: SPACE AVGREC LRECL EXPDT / RETPD LIKE / REFDD DATACLAS MGMTCLAS STRORCLAS SECMODEL

EXAMPLES of JCL statements


KSDS
//dd1 DD DSNAME=MY.KSDATA, // DISP=(NEW,CATLG), // SPACE=(400,(50,5)), // AVGREC=K, // RECORG=KS, // KEYLEN=15, // KEYOFF=0, // LRECL=250

ESDS

//dd2 // // // //

DD DSNAME=MYESDATA, DISP=(NEW,CATLG), SPACE=(100,(10,8)), RECORG=ES, LRECL=50

LINEAR
(TEMP)

//dd3 // // // //

DD DSNAME=&LIN, DISP=(NEW,PASS), SPACE=(1,(10)), AVGREC=M, RECORG=LS

VSAM information from DATA CLASS

ISMF

create
DATA CLASSes

................. .................
STORAGE ADMINISTRATOR

* User specifies Data Class in JCL e.g. // DD..,DATACLASS=,.


or

* Data Class may be assigned by Automatic Class Selection (ACS) routines

DATA CLASS DEFINE


COMMAND = = =>
SCDS NAME: TEAM10.LAB.SCDS DATA CLASS NAME: DATAFIX TO DEFINE DATA CLASS, SPECIFY :

Page 1 of 2

DESCRIPTION===> SMALL FIXED LENGTH RECORD DATA SETS ===> RECORG ===> (KS, ES, RR, LS or blank) RECFM ===> FB (any valid RECFM combination or blank) LRECL ===> 80 ( 1 to 32781 or blank) KEYLEN ===> (0 to 255 or blank) KEYOFF ===> (0 to 32760 or blank) SPACE AVGREC ===> U (U, K, M or blank) AVG VALUE==> 80 (0 to 65535 or blank) PRIMARY ==> 1000 (0 to 999999 or blank) SECONDARY==> 1000 (0 to 999999 or blank) DIRECTORY==> (0 to 999999 or blank) RETPD OR EXPDT ==> (0 to 9999,yyyy/mm/dd or blank) USE ENTER TO PERFORM VERIFICATION;USE DOWN COMMAND TO VIEW NEXT PANEL USE HELP COMMAND FOR HELP;USE END COMMAND TO SAVE AND EXIT;CANCELTO EXIT

JCL with DATA CLASS //DDX DD DSN=MY.NEW.RRDS,DISP=(NEW,CATLG), // LRECL=260,DATACLAS=DCRRDS

DATACLASS LRECL RECORG SPACE AVGREC AVG VALUE PRIMARY SECONDARY CISIZE data

:DCRRDS :120 :RR :K :100 :10 :10 :1024

RESULTS

LRECL RECORG SPACE AVGREC AVG VALUE PRIMARY SECONDARY CISIZE data

:260 :RR
:K :100 :10 :10 :1024

DC attributes - combinations
RECORG LRECL RECFM KEYLEN KEYOFF SPACE VOLUME CNT CISIZE IMBED REPLICATE FREESPACE SHARE OPT X X BLANK X X X X X X X X X X X X X X X X X X X X X X X KS X ES X RR X LS

DELETE VSAM data set

//ddname DD DSN=MY.NEW.RRDS, // DISP=( OLD,DELETE)

TOPIC 5 : IDCAMS Commands Part 2


TOPIC OBJECTIVES Terminal objectives: After attending this topic the student should know how to load and process the data set. Enabling objectives: Upon completion of this topic the student should be able to: * Describe the function of REPRO, PRINT and DELETE commands. * Code the following AMS commands: - REPRO - to load and unload a VSAM cluster. - PRINT - to print a VSAM cluster. - DELETE - to delete a VSAM cluster. * Select model commands to control conditional execution of a series of AMS commands.

DATA CLASS DEFINE


Page 2 of 2 COMMAND===> SCDS NAME: TEAM10.LAB.SCDS DATA CLASS NAME: DATAFIX TO DEFINE DATA CLASS, SPECIFY: VOLUME COUNT IMBED REPLICATE CISIZE DATA % FREESPACE CI CA SHAREOPTIONS XREGION XSYSTEM ===> I ===> ===> ===> ===> ===> ===> ===> (1 to 59 or blank) (Y, N or blank) (Y, N or blank) (1 to 32768 or blank) (0 to 100 or blank) (0 to 100 or blank) (1 to 4 0r blank) (3, 4 or blank)

USE ENTER TO PERFORM VERIFICATION;USE UP COMMAND TO VIEW PREVIOUS PANEL;USE HELP COMMAND FOR HELP;USE END COMMAND TO SAVE AND EXIT; CANCEL TO EXIT.

REPRO

DATA SET A

REPRO (COPY)

DATA SET B

VSAM nonVSAM

COPYING ENTIRE DATA SETS

REPRO INDATASET (EXAMPLE.SAM.INPUT) -

OUTDATASET ( EXAMPLE.KSDS.OUTPUT)

REPRO WITH INFILE / OUTFILE

//STEP1

EXEC

PGM=IDCAMS

//SYSPRINT DD //MASTER //BKUP // // //SYSIN DD * DD DD

SYSOUT=A DSN=EXAMPLE.KSDS.MASTER,DISP=OLD DSN=EXAMPLE.SAM.BACKUP,UNIT=SYSDA,SPACE=TRK,(2,1),RLSE), DISP=(NEW,CATLG), VOL=SER=PUB101, DCB=(RECFM=FB,LRECL=80,BLKSIZE=6120)

REPRO INLIFE( MASTER ) OUTFILE (BKUP)

REPRO RECORD SELECTION

WHERE TO START REPRO

WHERE TO STOP REPRO

VALID FOR:

FROMKEY(rec-key) FROMADDRESS(rba) FROMNUMBER(rrn) SKIP(number)

TOKEY(rec-key) TOADDRESS(rba) TONUMBER(rrn) COUNT(number)

KSDS, ISAM KSDS, ESDS RRDS KSDS,ESDS, RRDS, ISAM, SAM

REPRO EXAMPLE

//STEP1
//SYSPRINT

EXEC
DD

PGM=IDCAMS
SYSOUT=A

//SYSIN

DD

REPRO IDS( EXAMPLE. LASTNAME.INDEX) ODS( EXAMPLE.EXTRACT.ESDS) FROMKEY(DEAN) TOKEY(DUTT)

MERGING DATA SETS WITH REPRO


INPUT 3 6

VSAM BEFORE

VSAM AFTER 3 6 15

15

REPRO

INFILE(INPUT)

OUTFILE(VSAM)

NOREPLACE

4 6 17 NOT COPIED

3 6* 15

15

4
6*

17

MERGING AND REPLACING

INPUT

VSAM BEFORE

VSAM AFTER

9
15*

3
4 6

15
17

3
4 6

9
15* 17

replaced

REPRO INFILE (INPUT) OUTFILE (VSAM) REPLACE

REUSABLE DATA SETS

WORKFILE LOGFILE BACKUP

REUSABLE DATA SET

DEF CL (NAME (EXAMPLE.BKUP.FILE) VOL(SAV202) MODEL ( EXAMPLE.MSTR.FILE) REUSE)

//BACKUP EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=A //MSTR DD DSN=EXAMPLE.MSTR.FILE,DISP=OLD //BKUP DD DSN=EXAMPLE.BKUP..FILE,DISP=OLD //SYSIN DD * REPRO INFILE( MSTR) OUTFILE (BKUP) REUSE

EFFECT OF REUSE
BACK-UP PROGRAM SETS HI - USED -RBA =0

OPEN OUTPUT BKUP -FILE (defined REUSE) . . WRITE BKUP - REC . . CLOSE BKUP - FILE

DATASET APPEARS TO BE EMPTY LOADS DATA INTO EMPTY DATA SET

HI - USED -RBA AND OTHER CATALOG INFORMATION AS IF DATA SET WAS LOADED FOR THE FIRST TIME

LOAD Vs MERGE

COMMAND

TARGET

RESULT
TARGET NON-EMPTY TARGET EMPTY

REPRO

TARGET IS DEFINEd NOREUSE

MERGE

LOAD

NOREUSE

TARGET IS DEFINEd REUSE

MERGE

LOAD

REPRO

TARGET IS DEFINEd REUSE

LOAD

LOAD

REUSE

TARGET IS DEFINEd NOREUSE

FAIL

LOAD

PRINT

COMMAND

VSAM OR NON-VSAM DATA SET

PRINT

SYSPRINT

PRINT INDATASETS(TSOXXXX.TEST.SAMPLE.KSDS) CHAR COUNT(3)


LISTING OF DATASET -TSOXXXX.TEST.SAMPLE.KSDS KEY OF RECORD - 00000001 ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ00000001 KEY OF RECORD - 00000011 BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI 00000011 KEYOF RECORD - OOOOOO21 CDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGH00000021 IDC00051 NUMBER OF RECORDS PROCESSED WAS 3 IDC00011 FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0

PRINT COMMAND EXAMPLES


PRINT INDATASET(TSOXXXX.TEST.SAMPLE.KSDS) HEX COUNT(3)
LISTING OF DATASET - TSOXXXX.TEST.SAMPLE.KSDS KEY OF RECORD - FOF OF OF OFOFOFOF 1 C1C2C3C4C5C6C7C8C9D1D2D3D4D5D6D7D8D9E2E3E4EE5E6E7E8E9C1C2C3C4C5C6C7C8C9D1C1CC3 C4C6C7C8C9D1D2D3D4D5D6D7D8D9E2E3E4E5E6E7E8E9C1C2C3C4C5C6C7C8C9D1FOFOFOFOFOFOF 1 KEY OF RECORD - FOFOFOFOFOFOF 1F 1 40C2C3C4C5C6C7C8C9D1D2D3D4D5D6D7D8D9E2E3E4E5E6E7E8E9C1C2C3C4C5C6C7C8C9D1C1C2C3C 4C5C6C7C8C9D1D2D3D4D5D6D7D8D9E2E3E4E5E6E7E8E9C1C2C3C4C5C6C7C8C940FOFOFOFOFOF KEY OF RECORD - F OF OF OF OF OF 2F 1 4040C3C4C5C6C7C8C9D1D2DD4D5D6D7D8D9E2E3E4E5E6E7E8E9C1C2C3C4C5C6C7C8C9D1C1C2C3C4 C5C6C7C8C9D1D2D3D4D5D6D7D8D9E2E3E4E5E6E7E8E9C1C2C3C4C5C6C7C84040F OF OF OF OF OF IDCD0051 NUMBER OF RECORDS PROCESSED WAS 3 IDC00011 FUNCTION COMPLETED HIGHEST CONDITION CODE WAS

PRINT INDATASET(TSOXXXX.TEST.SAMPLE.KSDS) DUMP COUNT(3)


LISTING OF DATA SET - TSOXXXX.TEST.SAMPLE.KSDS KEY OF RECORD - F OFOFOFOFOFOF 1 000000 C1C2C3C4 C5C6C7C8 C9D1D2D3 D4D5D6D7 D8D9E2E3 E4E5E6E7 E8E9C1C2 C3C4C5C6 .ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEF 000020 C7C8C9D1 C1C8C9D1 C5C6C7C8 D4D5D6D7 D8E2E3E4 E5E6E7E8 E9CC12C3C4 C5C6C7C8 LISTING OF DATA SET - TSOXXXX.TEST.SAMPLE.KSDS .GHIJABCDEFGHIJKLMNOPQRSTUVWXYZAB. KEY OF RECORD - F OFOFOFOFOFOF 1 000000 C1C2C3C4 C5C6C7C8 C9D1D2D3 D4D5D6D7 D8D9E2E3 E4E5E6E7 E8E9C1C2 C3C4C5C6 .ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEF 000020 C7C8C9D1 C1C8C9D1 C5C6C7C8 D4D5D6D7 D8E2E3E4 E5E6E7E8 E9CC12C3C4 C5C6C7C8 .GHIJABCDEFGHIJKLMNOPQRSTUVWXYZAB.

PRINT RECORD SELECTION

WHERE TO START PRINTING

WHERE TO STOP PRINTING

SKIP(number)

COUNT(number)

FROMKEY(key-value)
FROMADDRESS(rba)

TOKEY(key-value)
TOADDRESS(rba)

FROMNUMBER(rrn)

TONUMBER(rrn)

DELETE CLUSTER

DELETE (entryname) CLUSTER

- Identifies data set for deletion


- Additional parameters: ERASE PURGE NOERASE NOPURGE specifies whether components are over-written with X00s specifies whether cluster is to be deleted regardless of retention period specifies whether data set is to be removed from the VTOC / VVDS of the volume on which it resides

SCRATCH

NOSCRATCH

COMMAND CONDITION CODES


EACH COMMAND EXECUTED IS ASSIGNED A CONDITION CODE

0 = Command completed as expected 4 = A minor problem occured, but it was possible to continue 8 = Requested function was completed, but major specifications were unavoidably bypassed 12 = Requested function could not be performed 16 = A severe error occured, remainder of the command stream is flushed

MODEL COMMANDS
SYNTAX : IF { LASTCC MAXCC} comparand number THEN [command or DO command set END] [ELSE [command or DO command set END] ]

SYNTAX: SET {LASTCC MAXCC } = number

CONTROLLING COMMAND EXECUTION

EXAMPLE : //SYSIN DD * REPRO IDS (EXAMPLE . INPUT) ODS (EXAMPLE . MYDATA) IF LASTCC = 0 THEN PRINT IDS (EXAMPLE . MYDATA ) CHAR ELSE DO LISTCAT ENT (EXAMPLE . INPUT ) ALL LISTCAT ENT (EXAMPLE . MYDATA ) ALL END

COMMON CONTINUATION ERRORS


IF LASTCC = 0 THEN LISTCAT IF LASTCC = 0 THEN REPRO /* comments comments */ ELSE PRINT IF LASTCC = 0 THEN REPRO ELSE PRINT ...

null command assumed after THEN LISTCAT executed unconditionally

no hyphen after comments, ELSE will not match up with THEN

ELSE becomes null, PRINT is executed unconditional


(blank line)

TOPIC 6: Application Coding Considerations


Topic objectives Terminal objective: After attending this topic the student should know the VSAM processing terminology as well as the basics of writing programs to create, modify and delete data from VSAM data sets Enabling objectives: Upon completion of this topic the student should be able to: * Define the followig VSAM processing options: SEQ, SKP, DIR, FWD, BWD, IN, OUT, CNV, MVE, LOC. * Explain how catalog entry, JCL parameters, and program specifications are merged at OPEN to determine processing options. * Convert an ISAM data set to a VSAM KSDS using appropriate options on DEFINE, REPRO and AMP parameters. * Code the necessary AMP parameters to support the ISAM Interface Program (IIP) and where to find information in reference manuals. * Identify VSAM programming support in COBOL, PL/I, Assembler and FORTRAN. * Identify programming and JCL requirements to use VSAM clusters in COBOL, PL/I, Assembler and FORTRAN.

APPLICATION CODING CONSIDERATIONS

* * * * *

PRCESSING OPTIONS OPEN PROCESSING JCL CONSIDERATIONS ISAM INTERFACE PROGRAM (IIP) LANGUAGE CONSIDERATIONS - ASSEMBLER - COBOL - PL/I - FORTRAN

VSAM ACCESS MODES


SEQUENTIAL ( FWD )

SEQUENTIAL ( BWD )

DIRECT

SKIP - SEQUENTIAL

VSAM PROCESSING OPTIONS

* LOGICAL RECORD ACCESS

* CONTROL INTERVAL ACCESS

- ACCESS TO DATA RECORD - VSAM MANAGES BUFFERS - VSAM UPGRADES ALTERNATE INDEXES

- ACCESS TO CONTROL INTERVAL - VSAM OR USER BUFFERING - USER UPGRADES ALTERNATE INDEXES

VSAM RETRIEVAL OPTIONS


MOVEMODE VSAM PROGRAM BUFFER VSAM WORK AREA

VSAM MOVEs RECORD TO WORK AREA

PROGRAM LOCATE MODE VSAM BUFFER ADDRESS OF RECORD

VSAM INFORMS PROGRAM WHERE DATA IS LOCATED

SPECIFYING PROCESSING OPTIONS

PROCESSING OPTIONS SPECIFIED IN:

CATALOG

PROGRAM CONTROL BLOCKS

JCL

SPECIFIED IN THE DEFINE OF THE DATA SET

MACRO PARAMETERS CODED IN APPLICATION PROGRAM

CODED IN DD STATEMENT AMP KEYWORD

OPENING A VSAM DATA SET

VSAM DETERMINES PROCESSING OPTIONS: - WHEN THE DATA SET IS OPENED - BY MERGING INFORMATION FROM JCL DD STATEMENTS, PROGRAM CONTROL BLOCKS AND THE CATALOG ORDER OF PROCESSING: 1. CATALOG ENTRY FOR THE DATA SET 2. PROGRAM CONTROL BLOCKS 3. DD STATEMENT AMP KEYWORD

JCL CONSIDERATIONS

PROGRAM ICF CATALOG DATA SET

//ddname

DD DSNAME = dsname, DISP = {OLD SHR }, AMP =

THE AMP PARAMETER

//.

DD

..AMP = ( [ AMORG ] [ ,BUFND = number ] [, BUFNI = number ] [, BUFSP =number ] [,CROPS = {RCK NCK NRE NRC } ] [,OPTCD = {I L IL } ] [,RECFM = {F FB V VB } ] [,STRNO = number ] [,SYNAD = modulename ] [,TRACE ] )

THE ISAM INTERFACE PROGRAM * MAKES THE TRANSITION FROM ISAM TO VSAM EASIER

ISAM

APPLICATION PGM

IIP

AMS DEFINE AND REPRO (OR USER PGM

ISAM I/O STATEMENTS

KSDS

CONVERSION STEPS
DEFINE KSDS VARIABLE LENGTH RECORDS: REC LEN = ISAM DCBLRECL - 4 KEY LEN = ISAM DCBKEYLE KEY POS = ISAM DCBRKP -4 FIXED LENGTH RECORDS: REC LEN = ISAM DCBLRECL (+DCBKEYLE, IF DCBRKP =0 AND RECORDS UNBLOCKED) KEY LEN = ISAM DCBKEYLE KEY POS = ISAM DCBRKP REPRO
//CONVERT //JOBCAT //STEP //SYSPRINT //ISAM //VSAM //SYSIN REPRO JOB DD EXEC DD DD DD DD DISP = SHR,DSNAME =USERCTLG PGM = IDCAMS SYSOUT = A DISP=OLD,DSNAME=ISAMDATA,DCB=DSORG =IS DISP = DSNAME = VSAMDATA *

INFILE (ISAM ENVIRONMENT (DUMMY) ) OUTFILE (VSAM)

JCL FOR IIP

//MYJOB //STEP1 //FILEA //

JOB EXEC PGM = ISAMPGM DD DSN = MY.CONVRTD.KSDS,DISP = SHR, AMP= ( AMORG,RECFM =FB, STRNO=1)

//.

VSAM PROCESSING - ASSEMBLER


OPEN macro ACB MACRO Access method Control Block RPL MACRO Request Parameter List

DATA SET

REQUEST MACROS

CLOSE macro

CREATING ACBs AND RPLs


MACROS PROCESSED AT ASSEMBLY TIME MACROS PROCESSED AT EXECUTION TIME

ACB

GENCB ACB

RPL

GENCB RPL

ACB MACRF PARAMETER


FILEA ACB ..MACF = ( processing option )..

MACRF PROCESSING OPTIONS

ADR CNV KEY DIR SEQ SKP IN NIS OUT SIS

Record or CI access Access Mode Input or Output Insert strategy

RPL OPTCD PARAMETER


RPLA RPL .., OPTCD = ( request option list ),..

RPL REQUEST OPTIONS

ADR CNV KEY DIR FWD LOC NSP SEQ SKP BWD MVE NUP UPD

Record or CI access Access mode Forward or Backward LOCATE or MOVE mode Retrieval for UPDATE or NOUPDATE

MACRO RELATIONSHIPS
//ddname DD DSNAME = dsname,DISP = { OLD SHR } [label ] [label ] [label] OPEN get put RPL ( address [ ,(options) ,] RPL = address [ACB =address ] [ , OPTCD = (DIR SEQ SKP])

[label]

ACB

. [ , DDNAME =dname] [ , MACRF = ( DIR ][,SEQ] [,SKP] [,IN] [.OUT][,NRS] [,RST][])] [ , EXLST = address ]
[EODAD = address] [,LERAD = address] [,SYNAD = address]

[label]

EXLST

ASSEMBLER ERROR HANDLING KEYED - SEQUENTIAL RETRIEVAL ( FORWARD)


INPUT ACB MACRF = ( KEY, SEQ, IN ) ACB =INPUT, AREA = IN, AREALEN = 100, OPTCD = (KEY,SEQ, SYN,NUP,MVE )

RETRVE

RPL

. . LOOP .GET RPL = RETRVE LTR 15, 15 BNZ ERROR . B ERROR IN DS LOOP

CL 100

VSAM PROCESSING - COBOL

ENVIRONMENT DIVISION. SELECT STATEMENT

JCL DD STATEMENT

DATA DIVISION. FD STATEMENT

PROCEDURE DIVISION. OPEN / CLOSE AND I / O REQUESTS

COBOL SELECT STATEMENTS


ESDS SELECT FILE - A 1. ASSIGN TO AS - FILEADD ORGANIZATION IS SEQUENTIAL 3. FILE STATUS FILE - STAT KSDS SELECT FILE - B ASSIGN TO FILEBDD ORGANIZATION IS INDEXED 2. ACCESS MODE IS DYNAMIC RECORD IS ACCT-NO 4. ALTERNATE RECORD KEY IS SSNO WITH DUPLICATES 3. FILE STATUS FILE-STAT

RRDS SELECT FILE-C ASSIGN TO FILECDD ORGANIZATION IS RELATIVE 2. ACCESS MODE IS RANDOM RELATIVE KEY IS REC - NO 3. FILE STATUS FILE - STAT

COBOL FD STATEMENTS

FD

filename

01

RECORD - DATA - AREA. 05 ACCT - NO PIC X(08). 05 SSNO PIC 9(09). 05 ..

COBOL PROCEDURE DIVISION VERBS

OPEN CLOSE

OPEN / CLOSE OF THE DATA SET

START

READ REWRITE WRITE DELETE -

establish position for continued sequential retrieval retrieval of data replace existing record add a new record delete existing record

COBOL ERROR HANDLING


SELECT FILEA .. FILE STATUS FILE - STAT. : : WORKING - STORAGE SECTION. 01 FILE - STAT PIC XX. : PROCEDURE DIVISION. : READ FILEA. IF FILE - STAT = 10 MOVE 1 TO EOF - SW ELSE IF FILE -STAT NOT = ZEROS PERFORM ERR - HANDLE - ROUTINE.

COBOL LIMITATIONS

COBOL DOES NOT SUPPORT:


* SKIP - SEQUENTIAL PROCESSING * BACKWARD PROCESSING * SEQUENTIAL INSERT STRATEGY ( SIS) * RBA ADDRESSING

* CI ACCESS

VSAM PROCESSING - PL / I

PL / I SUPPORTS :
* SKIP - SEQUENTIAL PROCESSING * BACKWARD PROCESSING * SEQUENTIAL INSERT STRATEGY ( SIS) * RBA ADDRESSING

PL / I FILE DECLARATIONS
SEQUENTIAL
DCL filename FILE RECORD INPUT OUTPUT UPDATE SEQUENTIAL BUFFERED [ KEYED ] ENVIRONMENT (options) : ENVIRONMENT OPTIONS : BKWD BUFND (n) BUFNI (n) BUFSP (n) COBOL GENKEY PASSWORD (pw) REUSE SCALARVARYING SIS SKIP VSAM

DIRECT
DCL filename FILE RECORD INPUT OUTPUT UPDATE DIRECT UNBUFFERED [ KEYED ] ENVIRONMENT (options) :

PL / I ERROR HANDLING
UPDTPGM : PROC OPTIONS ( MAIN) ; DCL MASTER FILE RECORD UPDATE DIRECT UNBUFFERED KEYED ENVIRONMENT ( VSAM) ; DCL ONCODE BUILTIN ; : : ON ENDFILE ( TRANSIN ) GO TO PRINT ; ON KEY (MASTER ) BEGIN ; IF ONCODE = 51 THEN CALL NOTFOUND; ELSE IF ONCODE = 52 THEN CALL DUPREC ; ELSE CALL UNDEFINED ; END; OPEN FILE ( MASTER ) ; : :

VSAM PROCESSING - FORTRAN

FORTRAN SUPPORTING

SEQUENTIAL

DIRECT

ESDS

RRDS
(RRN)

KSDS
( KEY)

LDS
(DIV) ( DIV)

FORTRAN I / O STATEMENT SUMMARY


Accesss Mode and FORTRAN I /O statements VSAM Sequential (ESDS) VSAM Direct (RRDS)

VSAM Direct (RRDS)


Direct Access
YES YES 4 NO NO YES NO NO YES

VSAM Keyed (KSDS)

Sequential access
OPEN WRITE REWRITE DELETE READ BACKSPACE REWIND CLOSE YES 1 YES 6 NO NO YES YES YES YES

Sequential access
YES YES NO NO NO2 YES3 YES5 YES3 YES5 YES3 YES

Keyed Access
YES YES 7 YES YES YES YES YES YES

FORTRAN ERROR HANDLING


IOSTAT data item VSAM RETURN CODE VSAM REASON CODE

EXAMPLE :

4 BYTES

INTEGER*2 12 (2) INTEGER*4 1 EQUIVALENCE (12,1) OPEN (10,ACCESS = DIRECT,RECL = 100) WRITE (10,REC =99,IOSTAT =1,ERR =1000) : 1000 WRITE (6,*) VSAM ERROR : RETURN CODE = , 12(1), 2 REASON CODE =, 12(2)

TOPIC 7 : VSAM Integrity and Security


Topic objectives Terminal objective: After attending this topic the student should know how to handle the VSAM features for maintaining integrity and security. Enabling objectives :
Upon completion of this topic the student should be able to : * Define the meaning and use of SHAREOPTIONS. * Recognise the need for serialization of updates to s data set. * Describe the use of ENQ / DEQ macrs to serislise data set updates in a multi - region and multi-system environment. * State the need for serialization of data sets in a multi-system environment. * Use the VSAM integrity and security options : RECOVERY, ERASE, VERIFY and Passwords. * Compare VSAM passwords with RACF security.

INTEGRITY REQUIREMENTS
MVS

VTAM

CICS

TSO

BATCH

DATA SET

SHARING IN A REGIOM

SHARE CONTROL BLOCKS AND BUFFERS

SAME ACB SAME DD STATEMENT SAME DSNAME MACRF = DDN MACRF = DSN

SAME ACB - MULTIPLE USERS


PROGRAM

RPL1 - SEQ DATA SET

RPL2 - DIR

ACB

RPL3 - DIR

MULTIPLE RPLs FOR THE SAME ACB IN THE SAME REGION

SHARING DDNAME / DSNAME PROGRAM

RPL - SEQ

ACB1

DATA SET RPL - DIR ACB2

MULTIPLE ACBs FOR THE SAME DATASET IN THE SAME REGION

SHARING IN A SYSTEM

//MYDATA

DD

DSNAME = MY.VSAM.CLUSTER,DISP = OLD

SYSTEM EXCLUSIVE ENQ FOR DSNAME

//OTHER

DD

DSNAME = MY.OTHER.CLUSTER,DISP = SHR

CHECK SHAREOPTIONS

VSAM SHAREOPTIONS
PURPOSE : READ INTEGRITY AND / OR WRITE INTEGRITY

HOW TO SPECIFY : DEFINE CROSS REGIONS

: : SHR (1,3)
: :

CROSS SYSTEMS

CROSS REGION SHARING


SHAREOPTION INTEGRITY SHAREOPTION

CROSS REGION
1 MULTIPLE READ OR ONE WRITE READ / WRITE

CROSS SYSTEM

2 MULTIPLE READS AND ONE WRITE


3 MULTIPLE READS AND MULTIPLE WRITES

WRITE READ WITH ENQ /DEQ


USER RESPOSIBLE

4 MULTIPLE READS AND MULTIPLE WRITES

USER RESPONSIBLE SOME VSAM AID

CROSS REGION : SHAREOPTIONS 3 AND 4


AMS DEFINE or ALTER JCL

SHAREOPTION 3 or 4

DISP = SHR

USER RESPOSIBLE FOR INTEGRITY

SERIALIZED UPDATES

USER SERIALIZATION
CROSS REGION SHARING :

ENQ macro
:

READ

UPDATE
REWRITE

VSAM DATA SET

DEQ macro

CROSS SYSTEM SHARING


SHAREOPTION INTEGRITY SHAREOPTION

CROSS REGION

CROSS SYSTEM 1 UNUSED 2 UNUSED 3 MULTIPLE READS AND MULTIPLE WRITES 4 MULTIPLE READS AND MULTIPLE WRITES

USER RESPONSIBLE USER RESPONSIBLE SOME VSAM AID

INTEGRITY REQUIRES USE OF RESERVE AND DEQ * WRITE PROCESSING MAY NOT ALTER HI-USED-RBA

CROSS SYSTEM REQUIREMENTS

USER FULLY RESPONSIBLE FOR INTEGRITY * USE RESERVE / DEQ MACROS * PASS VSAM SHARED INFORMATION TO OTHER * SYSTEMS

RUN VERIFY BEFORE OPENING DATA SET


WITH SHAREOPTIONS ( n 4) * CA SPLITS NOT ALLOWED * NEW RECORDS CANNOT BE ADDED AT END OF * DATA SET

SPEED Vs. RECOVERY

DEFINE CLUSTER : SPEED RECOVERY : :

SPEED IS USED FOR INITIAL LOAD ONLY RESUME LOAD (EXTENDING) ALWAYS USES RECOVERY AFTER SOFTWARE-END-OF-FILE IS WRITTEN, THE FILE IS IN RECOVERY MODE

SPEED EXAMPLE
LOADING 10 15 20 RDF RDF CIDF

30
40

35

40

RDF

RDF
RDF

CIDF
CA1 CIDF

CA2

STEP1 PREFORMATTING

RECOVERY EXAMPLE
CIDF
CIDF CIDF SEOF CA2 CA1

00000
00000 00000

STEP 2: LOADING 10 30 50 90 15 20 26 43 87 RDF RDF RDF RDF RDF CIDF RDF CIDF RDF CIDF RDF CIDF CIDF CIDF SEOF CA3 CA1

35 40 73 81 98

CA2

VERIFY COMMAND
ICF CATALOG TEST.DATA.SET DATA SET TEST.DATA.SET

END- OF- DATA

END- OF- DATA

END-OF-KEY-RANGE

END-OF-KEY-RANGE

VERIFY : COMPARES CATALOG INFO WITH THE DATA SET CORRECTS CATALOG IF A DISAGREEMENT IS FOUND

VERIFY EXAMPLE

// JOB //TEST EXEC PGM = IDCAMS

//SYSPRINT DD SYSOUT = A

//SYSIN

DD *
LISTCAT VERIFY LISTCAT ENTRIES ( TEST .DATA. SET ) ALL DATASET ( TEST .DATA .SET) ENTRIES ( TEST .DATA .SET ) ALL

ERASE Vs. NOERASE


DEFINE CLUSTER : : ERASE NOERASE : : : DELETE ( ) CLUSTER : : ERASE NOERASE : :

DELETE ERASE : Removes BCS / VTOC / VVDS records Overwrites areas with X 00 s Additional overhead Describe for sensitive data DELETE NOERASE : Removes BCS / VTOC / VVDS records Recommended

PASSWORD ACCESS LEVELS

ACCESS TYPE

DEFINEPARAMETER*

* * * *

READ UPDATE CONTROL INTERVAL FULL

READPW (PASSWORD) UPDATEPW (PASSWORD) CONTROLPW (PASSWORD) MASTERPW (PASSWORD)

* MAY BE DEFINED AT CLUSTER DATA INDEX COMPONENT FOR CLUSTER

PASSWORD SOECIFICATIONS
CASE 1:
DEFINE : READPW (ALLOW)

CASE 2:
DEFINE : READPW (ALLOW) CONTROLPW (ALLOWIT)

RESULTS IN :

READ PASSWORD UPDATE PASSWORD CONTROL PASSWORD MASTER PASSWORD

ALLOW ALLOW ALLOW ALLOW

READ PASSWORD UPDATE PASSWORD CONTROL PASSWORD MASTER PASSWORD

ALLOW NONE ALLOWIT ALLOWIT

WAYS TO PROVIDE PASSWORDS

PROGRAM OR CONTROL CARDS LANGUAGES YES

OPERATOR PROMPT YES*

ACCESS METHOD SERVICES

YES

YES*

ISAM INTERFACE PROGRAM

NO

YES

* WHEN NOT PROVIDED IN PROGRAM OR CONTROL CARDS

USER SECURITY VERIFICATION ROUTINE


OBJECTIVE : PROVIDE AN ADDITIONAL LEVEL OF SECURITY BEYOND PASSWORDS USED WITH PASSWORD PROTECTION SPECIFIED IN DEFINE FUNCTION OF ACCESS METHOD SERVICES DEFINITION : DEFINE

: : AUTHORIZATION (epoint[ string] : :

RACF PROTECTION

RESOURCE ACCESS CONTROL FECILITY -Optional software access control manager PROVIDES PROTECTION FOR

CATALOGS AND DATA SETS

RACF

Vs.

VSAM PASSWORDS

SYSTEM WIDE SECURITY GENERIC AND DISCRETE PROFILES - PAYROLL.* - TSOID.* READ / UPDATE / CONTROL / ALTER LEVELS (COMPATIBLE WITH VSAM PASSWORD LEVELS) ICF CATALOG RACF PROTECTION NOT REQUIRED FOR DATA SET RACF PROTECTION USVR BYPASSED ERASE ATTRIBUTE IN RACF PROFILE OVERRIDES AMS ERASE NOERASE

VSAM OBJECTS ONLY DICRETE PASSWORDS ONLY

READ / UPDATE /CONTROL / MASTER LEVELS CATALOG PASSWORD PROTECTION REQUIRED FOR DATA SET PASSWORD CHECKING USVR BYPASSED IF MASTER PASSWORD SPECIFIED DELETE ERASE NOERASE USED

TOPIC 8 : Buffering
Topic objectives Terminal objectives : After attending this topic the student should know how buffers are used and when buffer space should be modified. Enabling objectives : Upon completion of this topic the student should be able to : * * * * Explain the use of data and index buffers in sequential and direct processing. Evaluate the use of JCL AMP keywords to influence buffering. Code the buffer keywords in the DD statement. Explain the impact of buffering and SHAREOPTION modifications.

BUFFERS

BUFFER SPACE VSAM KSDS


INDEX BUFFERS INDEX COMPONENT

DATA COMPONENT

DATA BUFFERS

APPLICATION PROGRAM

ADDRESS SPACE

HOW TO SPECIFY BUFFER SPACE

LEVEL 1: AMS DEFINE

DEFINE CLUSTER : BUFFERSPACE (SIZE) : : : ACB : : :

LEVEL 2 : ASSEMBLER PROGRAM

BUFSP = SIZE Or BUFND = number BUFNI = number

LEVEL 3 : JOB CONTROL

: //VSAM1 DD ,AMP = ( BUFNI = 8, BUFND = 2) : Or : BUFSP = 12288

BUFFER SPACE ALTERNATIVES PRO CON

AMS DEFINE

ACB MACRO DD STATEMENT

STRNO CONCEPT

ACB

GET SEQ STRNO 1 RPL 1 GET SEQ STRNO 2

DATA SET

RPL 2

: : MACRF = ( IN, OUT, SEQ, SKP, DIR ..), STRNO = number, BUFSP = size, BUFND =number, BUFNI = number : :
:

BUFFERSPACE AT OPEN
PROCESSING MODE MINIMUM ADDITIONAL (IF ANY) index data index data index data index data index data

DIRECT SEQUENTIAL

DIRECT, SEQUENTIAL
SKIP SEQUENTIAL

STRNO STRNO +1 STRNO STRNO +1 STRNO STRNO +1 STRNO STRNO +1

data
data

BUFND / BUFNI AT OPEN

LEVEL 1: AMS DEFINE

DEFINE CLUSTER : BUFFERSPACE (size) : : ACB : :

LEVEL 2: ASSEMBLER PROGRAM

BUFND = number BUFNI = number

LEVEL 3: JOB CONTROL

//VSAM1 DD ..,AMP = (BUFNI =8,BUFND=2) : :

SAMPLE KSDS
IS 1

IS 2

IS 3

IS 4

SS 1
.. CI 1

SS 2
.. CI 7

SS 3
.. CI 13

SS 4
..

SS5
..

SS6
..

SS7
..

SS8
..

SS9
.. CI 49

SS 10
..

SS 11
..

SS 12
..

CI 2
CI 3 CI 4

CI 8
CI 9

CI 20

CI 26
CI 45 CI 34 CI 57

CI 46

CI 5 CI 6 CI 18

CI 36 CA 4 CA 5 CA 6 CA 7 CA8 CA 8 CA 10 CA 11 CA 12

CA 1

CA 2

CA 3

DIRECT PROCESSING BUFFER EXAMPLE


DIRECT GET OF RECORD FROM CI n CI 7 CI 18 CI 26 CI 9 CI 34 SAME CI CI 6 CI 20 CI 5 CI 45 CI 49 CI 46 CI 67 CI 67 CI 49 CI 46 CI 5 CI 45 CI 6 CI 20 CI 34 CI 34 INDEX BUFFERS 1 IS 1 2 IS 2 3 SS 2 SS 3 CI 26 CI 9 4 5 6 CI 7 CI 18 DATA BUFFERS 1 DATA BUFFERS 2

SEQUENTIAL PROCESSING BUFFER EXAMPLE

INDEX BUFFER SS 1

DATA BUFFER 1 CI 1 CI 3

DATA BUFFER 2 CI 2 CI 4

HOW MANY BUFFERS ?

ONLINE TRANSACTIONS ?

DATA BUFFERS ?

BATCH JOB ?

INDEX BUFFERS?

BUFFER RECOMMENDATIONS
DEFAULT * DATA : STRNO + 1 RECOMMENDATIONS * DATA : default * INDEX : minimum: no. index levels - 1 maximum: index set + STRNO * DATA : 3 + STRNO * INDEX : default

DIR

* INDEX : STRNO

* DATA : STRNO + 1

SEQ

* INDEX : STRNO

SHAREOPTION 4 AND BUFFERS

SHR

DISP = SHP

DIRECT PROCESSING

BUFFERS REFRESHED EACH READ MINIMUM BUFFERS MAY IMPROVE PERFORMANCE * NO CA SPLITS

CROSS SYSTEM SHARING :


* NO ADDITIONS BEYOND HI - USED - RBA

BUFFERS ABOVE 16M LINE


APPLICATION PROGRAM 2G

: :
ACB BUFSP = BUFND = BUFNI = STRNO = MACRF = ( ) ALL BUFF CB RMODE 31= NONE : : VSAM BUFFERS AND CONTROL BLOCKS 16M

WORK AREA
APPLICATION PROGRAM 0M

TOPIC 9 : IDCAMS ALTER


Topic objectives Terminal objectives: After attending this topic the student should know how to modify data set attributes. Enabling objectives : Upon completion of this topic the student should be able to : * State basic functions of the ALTER command. * Code the ALTER command to modify processing options for existing VSAM objects, options such as buffering, FREESPACE, SHAREOPTIONS and passwords. * Use the ALTER command to add or remove volumes.

THE ALTER COMMAND

CATALOG EXAMPLEKSDS SHAREOPTIONS (1,3) ALTER EXAMPLE.KSDS SHAREOPTIONS (2 3)

CATALOG EXAMPLEKSDS SHAREOPTIONS (2,3)

ALTER entryname [ / password ] SHAREOPTIONS (crossregion crosssystem )

TYPES OF CATALOG ENTRY

ALTER PARAMETERS
X X X X X X X X X X X X X X X X X X X X X

ATTRIBUTES THAT CAN BE ALTERED


ADDVOLUMES ATTEMPTE X

X X

AUTHORIZATION X

BIND
BUFFERSPACE BUFND BUFNI CODE X

X
X

X
X

X
X X X

X
X

CONTROL PW
CYLINDERFAULT DESTAGEWAIT EMPTY ERASE EXCEPTIONEXIT FOR FREESPACE

X
X X

X
X X

X
X X

X
X X

X
X X X

X X X X X X

X X X X X : X : X X X X

X X X

SHAREOPTIONS

ALTERING BUFFERSPACE
DATA BUFFERS
CL 1 CL2 CL 3 CL 4 MORE DATA BUFFERS NEEDED

ALTER entryname [ / password ] BUFFERSPACE (size )

WORK AREA ADDRESS SPACE

ALTERING FREESPACE

no insert activity in this area some insert activity in this area

No FREESPACE needed FREESPACE desired

SOLUTION : * Define data set with FSPS (0,0) * Load first part of data set * Alter FREESPACE attribute of data set * Complete the loading of the data set

ALTER entryname [ /password ] FREESPACE ( CI-percent [ CA-percent] )

ALTERING PASSWORDS
ADDING / CHANGING PASSWORDS :

ALTER entryname [ / password ] [READPW( password)] [ UPDATEPW ( passwprd ) ] [ CONTROLPW ( password ) ] [ MASTERPW ( password ) ]

NULLIFYING PASSWORDS :

ALTER entryname [ /password ] NULLIFY ( [ READPW] [ UPDATEPW ] [CONTROLPW ] [MASTERPW ] )

ADDING VOLUMES

Volume is full ( or almost full ) : : : Insufficient time to delete, redefine, and reload the data set with more space : SOLUTION : ALTER data set attributes providing a CANDIDATE volume for expansion .

ADDING AND REMOVING VOLUMES

ALTER entryname [ / password ] ADDVOLUMES ( volser [ volser .] )

ALTER entryname [ / password ] REMOVEVOLUMES ( volser [ volser .] )

GENERIC ALTERATIONS
CATALOG
EXAMPLE 1:
PAY.Y1988.DATA.A OWNER(DUTT) : PAY.Y1988.DATA.B OWNER(DUTT) : PAY.Y1988.DATA.C OWNER(SINGH) :

CATALOG
PAY.Y1989.DATA.A OWNER(DUTT) : PAY.Y1989.DATA.B OWNER(DUTT) : PAY.Y1989.DATA.C OWNER(SINGH) :

ALTER PAY.Y1988.DATA.* NEWNAME (PAY.Y1988.DATA.*)

CATALOG
PAY.Y1989.DATA.A OWNER(BROWN) : PAY.Y1989.DATA.B OWNER(BROWN) : PAY.Y1989.DATA.C OWNER(BROWN) :

EXAMPLE 2:
ALTER PAY.Y1989.DATA.* OWNER (BROWN)

ALTER ESDS TO LDS

ALTER entryname [ /password ] TYPE (LINEAR)

REQUIREMENTS :
- EXISTING ESDS * CISZ(4096) * NONSPANNED * AIXs - CANNOT ALTER BACK TO ESDS

TOPIC 10 : Tuning
Topic objectives Terminal objective : After attending this topic the student should know how to tune VSAM datasets. Enabling objectives :
Upon completion of this topic the student should be able to : * Identify when FREESPACE is used in a CI and CA. * Evaluate the types of space allocation and their impact on performance. * Analyze the impact on DASD space utilization and performance of the index options IMBED and REPLICATE. * Access the performance impact of cache. * Describe the space allocation process with KEYRANGES and multi-volume data sets. * Interpret the contents of an index control interval. * Illustrate the process of VSAM key compression.

THE TUNING CHALLENGE

BUFFER SPACE

CISZ

KEY EOMPRESSION

WRITE CHECK

SHR

INDEX OPTIONS

MULTI VOLUME

SPACE ALLOCATION

FREE SPACE

TUNING TRADE - OFFS

PERFORMANCE

AMS TUNING CANDIDATES


DEFINE CLUSTER ( :
CYLINDERS RECIRDS TRACKS (pri, sec ) VOLUMES (volser[volser]) BUFFERSPACE (size) CONTROLINTERVALSIZE (size) ERASE NOERASE FREESPACE (CI- percent CA -percent ) IMBED NOIMBED KEYRANGES ((lowkey highkey) (lowkey highkey)) ORDERED UNORDERED REPLICATE NOREPLICATE SHAREOPTIONS (crossregion crosssystem ) SPEED RECOVERY WRITECHECK NOWRITECHECK ) -

CONTROL INTERVAL SIZE

CISZ * DEFINE CLUSTER (NAME (A,B) CISZ (4096)) * DEFINE CLUSTER (NAME (A,B)) DATA (NAME (A.B.INDEX) CISZ (512)) * DEFINE CLUSTER (NAME(A.B)) DATA (NAME ( A.B.DATA) CISZ (4096)) INDEX ( NAME ( A.B.INDEX))

CONTROL INTERVAL SIZE CONCERNS

* * * * * *

DASD UTILIZATION MULTIPLE BLOCKS SPANNING A TRACK FREESPACE ALLOWANCE RECORDFIT INDEX KEY COMPRESSION

CHECK LISTCAT

CONTROL INTERVAL SIZE GUIDELINES


* SEQUENTIAL / SKIP SEQUENTIAL LARGER DATA CI IMPROVES PERFORMANCE WITHIM THE TASK. * DIRECT

SMALLER DATA CI IMPROVES PERFORMANCE WITHIN THE TASK.


* SEQUENTIAL / SKIP SEQUENTIAL AND DIRECT

SMALLER DATA CI
MULTIPLE BUFFERS WHEN PROCESSING SEQUENTIALLY.

FREESPACE ( CI% CA%)


FREE SPACE

CI% = % OF (CI SIZE - RDFs - CIDF EXAMPLE : FSPC (20 10) CISZ (4096) RECSZ (500 500) FREESPACE THRESHOLD 3267

R1

R2

R3
1000

R4

R5

R6
2500

FREESPACE

BYTE # 500

3000

CA % = EMPTY Cis PER CA


CONTROL AREA
DATA DATA DATA DATA DATA FSPC

PURPOSE OF FREE SPACE REDUCE CI AND CA SPLITS


1. ADD RECORD 14 : CI SPLIT 8 10 12 13 18 21 25

2. ADD RECORD 14 : USE FREE SPACE 8 10 12 13 FREESPACE

FREE SPACE USAGE


DIRECT / SKIP SEQUENTIAL * FREE SPACE WILL ALWAYS BE USED * SPECIFY MORE CI FREE SPACE SEQUENTIAL

* FREE SPACE WILL BE USED IF INSERTING IN FRONT OF FREESPACE THRESHOLD


* FREE SPACE WILL BE PRESERVED IF - LOADING FILE - EXTENDING FILE - INSERTING AT END OF CI * SPECIFY MORE CA FREE SPACE

GUIDELINES : INSERTS

* EVEN INSERTS : MORE CI FREESPACE * UNEVEN INSERTS : MORE CA FREESPACE

* INSERTS IN ONLY ONE SECTION OF FILE : 1. NO FSPC 2. INITIAL LOAD 3. ALTER FSPC 4. RESUME LOAD

FREE SPACE CONSIDERATIONS


LARGE FREE SPACE * MORE DASD SPACE * MORE I/O FOR SEQUENTIAL PROCESSING FOR SAME NUMBER OF RECORDS

* MORE LEVELS OF INDEX, SO POSSIBLE INCREASE IN RUN TIME FOR DIRECT PROCESSING
NO FREE SPACE OR TOO LITTLE FREE SPACE * MORE CI/CA SPLITS * AFTER SPLITS, POSSIBLY MORE TIME FOR SEQUENTIAL PROCESSING WHEN FILE NOT IN PHYSICAL SEQUENCE

BUFFER SPACE
BUFFER SPACE

KSDS INDEX DATA


DATA

BUFFERS
INDEX

APPLICATION PROGRAM

ADDRESS SPACE

HOW TO SPECIFY BUFFER SPACE


DEFINE CLUSTER : BUFFERSPACE (size) :

LEVEL 1: AMS DEFINE

LEVEL 2: ASSEMBLER PROGRAM

ACB :

BUFSP = size or BUFND = number BUFNI = number

LEVEL 3: JOB CONTROL

: //VSAM1 DD .., AMP = (BUFNI =8, BUFND=2) or : BUFSP = 12288

DIRECT Vs. SEQUENTIAL PROCESSING


IS1

IS 2

IS 3

SS 1

SS 2

SS 3

SS 4

SS5

SS 6

CA 1

CA 2

CA 3

CA 4

CA 5

CA6

BUFFERSPACE AT OPEN
PROCESSING MODE MINIMUM ADDITIONAL (IF ANY)

DIRECT SEQUENTIAL DIRECT . SEQUENTIAL SKIP SEQUENTIAL

STRNO index STRNO+1 data STRNO index STRNO+1 data STRNO index STRNO+1 data STRNO index STRNO+1 data

index data data data

BUFFER RECOMMENDATIONS
DEFAULT
* DATA: STRNO +1

RECOMMENDATION
* DATA: default

DIR
* INDEX : STRNO * INDEX: minimum: no.index levels -1 maximum: index set + STRNO

SEQ

* DATA: STRNO +1

* DATA: 3 + STRNO

* INDEX: STRNO

* INDEX: default

BUFFER GUIDELINES
TOO FEW BUFFERS

* POOR PERFORMANCE
* MULTIPLE DASD ACCESSES

TOO MANY BUFFERS

* ADDITIONAL VIRTUAL STORAGE


* ADDITIONAL SYSTEM PAGING

IMPROVED CONTROL INTERVAL (ICI ) ACCESS


USER PROGRAM :

RPL ACB = ACB1, AREA = AREA1, AREALEN = XXX, OPTCD = (CNV, MVE,UPD...
VSAM CIs

: AREA1 DS..
:

ACB1 ACBMACRF =(CNV,ICI,DIR, SYN,...

SPACE ALLOCATION
SPACE ALLOCATION

CYLINDER TRACKS RECORDS KILOBYTES MEGABYTES

(primary [ , secondary ] )

CA SIZE DETERMINED BY VSAM :


SPACE ALLOCATION CA SIZE

CYLIDERS

1 CYLINDER

TRACKS / RECORDS

* SMALLER OF PRIMARY AND SECONDARY ( IF SPECIFIED ) * NOT TO EXCEED 1 CYLINDER

ALLOCATION RECOMMENDATION
CYLINDER CA SIZE

* IMPROVES DIRECT PROCESSING DECREASES NUMBER OF INDEX LEVELS DECREASES NUMBER OF INDEX BUFFERS

* MORE AVAILABLE CA FREESPACE


* CA DOES NOT CROSS CYLINDER BOUNDRY * SECONDARY ALLOCATIONS AVOID EXCESSIVE EXTENTS

IMBED / REPLICATE
INDEX OPTIONS

IMBED
INDEX COMPONENT

NOIMBED NOREPLICATE

IS SS1 SS1 SS1 SS1 SS1 DATA SS2 SS2 SS2 SS2 SS2 DATA INDEX COMPONENT

DATA COMPONENT

SS1 IS SS2

DATA DATA
DATA COMPONENT

REPLICATE

INDEX SS1 SS1 SS1 SS1 SS1 COMPONENT

IS IS IS IS IS IS IS

SS2 SS2 SS2 SS2 SS2


DATA DATA

DATA COMPONENT

INDEX OPTIONS (1)


NIMBD NREPL
SS1 SS5 CA 1 CA 2 CA 3 CA 4 CA 5 SS4 CA 6 SS5 CA5 SS6 CA6 SS6 SS6 SS6 DATA SS3 CA3 SS4 SS4 SS4 SS2 IS2 IS1 IS3 SS3 SS6 SS4

NIMBD NREPL

INDEX

IS 1
SS1 CA 1 SS2

IS2
SS1

IS3
SS1 SS1

} INDEX

SS2

SS2

SS2

CA2
SS3 SS3 SS3 DATA

CA4
SS5 SS5 SS5

INDEX OPTIONS (2)


NIMBD REPL
IS1 IS2 IS3 IS1 IS2 IS3 IS1 IS2 IS3 IS1 IS2 IS3 IS1 IS2 IS3

IMBD REPL
IS1 IS2 IS3 IS1 IS2 IS3 IS1 IS2 IS3 INDEX

SS1
SS2 SS3 SS4

SS1
SS2 SS3 SS4

SS1
SS2 SS3 SS4

SS1
SS2 SS3 SS4 INDEX

SS1
CA1 SS2 CA2

SS1

SS1

SS1

SS2

SS2

SS2

SS5
SS6 CA1 CA2 CA3 CA3 CA5 CA6

SS5
SS6

SS5
SS6

SS5
SS6

SS3
CA3 SS4 CA4 SS5 DATA CA5 SS6 CA6

SS3

SS3

SS3
DATA

SS4

SS4

SS4

SS5

SS5

SS5

SS6

SS6

SS6

IMBED / REPLICATE CANDIDATES


IMBED
* SEQUENTIAL PROCESSING * DIRECT WITH MANY INDEX SET BUFFERS * Cas WITHIN CYLINDER BOUNDARIES * LARGE CA SIZE * VOLUMES NOT OVER - ACTIVE * HIGH PERFORMANCE DATA SET * ADDITIONAL BUFFER SPACE UNAVAILABLE * NO CACHE * SHARED DASD

REPLICATE

* SHARED DASD

INDEX OPTIONS
* NUMBER OF BUFFERS * OTHER ACTIVITY ON VOLUME * DASD SPACE - USE IMBED WITH LARGE CA SIZE

* CI / CA SPLITS ADD OVERHEAD REPLICATING INDEX Cis


* DATA AND INDEX ON SEPARATE VOLUMES * CACHE - DECREASES I /O TIME - REPLICATE UNNECESSARY

MULTIPLE VOLUME DATA SETS


MULTIVOLUME

DEFINE : VOLUMES (volser [ volser.]) CYL / TRK / REC (primary [ secondary ] ) KEYRANGES (( lowkey highkey) (lowkey highkey) ORDERED UNORDERED : :

* SPREAD HIGH ACTIVITY DATA SETS ACROSS VOLUMES AND/OR PATHS - REDUCE ARM CONTENTION - BALANCE PERFORMANCE * SEPARATE ACTIVITY VIA KEYRANGES

MULTIPLE VOLUME ALLOCATIONS


KEYRANGES
* PRIMARY ALLOCATIONS ALLOCATIONS FOR EACH KEYRANGE * EXTENSIONS: * SECONDARIES ON VOL OF PRIMARY ALLOCAT-ION * PRIMARY ON FIRST CANDIDATE VOLUME * SECONDARIES ON FIRST CANDIDATE VOLUME :

NO KEYRANGES
* PRIMARY ALLOCATION ON ONE VOLUME * EXTENSIONS: * SECONDARIES ON SAME. VOLUME * PRIMARY ON NEXT VOLUME * SECONDARIES ON SAME VOLUME :

UNORDERD

MUST FIND PRIMARY ALL-OCATION FOR EACH KEYRANGE

MUST FIND PRIMARY ALLOC-ATION ON ANY VOLUME

ORDERED

ALLOCATIONS ARE MADE IN THE ORDER SPECIFIED IN THE VOLUMES PARAMETER

MULTIPLE VOLUME EXAMPLE 1


DEFINE : VOLUMES ( A B C ) CYLINDERS ( 50 ) : : : :

B 50

MULTIPLE VOLUME EXAMPLE 2


DEFINE : VOLUMES ( A B C ) ORDERED CYLINDERS ( 50 5) : : :

A
50 5 5

C
50 5 5

50 5 5 5

ADDITIONAL EXTENTS

KEYRANGES EXAMPLE 1
DEFINE : VOLUMES ( A B C ) KEYRANGES (00 30) (31 65) (66 99)ORDERED CYLINDERS (50 5) : : B C

A
50 5 5

50 5 5

50

ADDITIONAL EXTENTS

KEYRANGES EXAMPLE 2
DEFINE : VOLUMES ( A B A ) KEYRANGES (00 30) (31 65) (66 99)) ORDERED CYLINDERS (50 5) :

B
50

A
50 50 5 5 5

}
{31 - 65}

{00 - 30} {66 - 99}

INDEX KEY COMPRESSION


KEY COMPR ESSION

1
INDEX SET

AS REQ D
SEQUENCE SET

1 / CA

control interval pointers

GOOD COMPRESSION

FEWER INDEX SET CIs

INDEX RECORD FORMAT

H E A D E R

F R E E P T R*

F R E E P T R*

S E C T I O N

E N T R Y

E N T R Y

S E C T I O N

E N T R Y

S E C T I O N

R D F

C I D F

* EXISTS ONLY IN SEQUENCE SET RECORDS

KEY

KEY COMPRESSION Vs. INDEX CISZ

INDEX CI SIZE ( BYTES )

NUMBER OF POINTERS *

512 1024 2048 4096 : :

58 121 248 502 : :

*AMS DEFINE ASSUMES ENTRIES COMPRESS TO 8 BYTES


WHAT HAPPENS IF INDEX COMPRESSION IS POOR

FIRST AND LAST KEYS IN CONTROL INTERVALS


CI 1 10001 10008

CI 2

10052
CI 3 10222

10080
10333

CI 4 10334
CI 5 14021

14000
14028

CI 6 23456
CI 7 23685

23630
.......

REAR KEY COMPRESSION


CI 2 10052 100 80

CI 3

102

22 KEYS USED IN COMPARISION

10333 KEY AFTER REAR COMPRESSION

CONTROL INTERVAL

CI 1 10008 / 10052 1000 CI2 10080 / 10222 100 CI3 10333 / 10334 10333 CI4 14000 / 14021 1400 CI5 14028 / 23456 1 ----CI6 23630 / 23685 2363 Those characters which are not required to distinguish between the two keys are dropped from the rear of the key.

FRONT KEY COMPRESSION


CI 1 10001 100 80

CI 2

10052 KEYS USED IN COMPARISION


10008 10008 / 10080 10080 / 10333 10333 / 14000 14000 / 14028 14028 / 23630

100

80 KEY AFTER FRONT COMPRESSION


10008 ===80 ===333 =4000 ===28 23630

CONTROL INTERVAL
CI 1 CI 2 CI 3 CI 4 CI 5 CI6

Those characters which are repeated are dropped from the front of the key.

KEYS IN THE INDEX


CONTROL INTERVAL COMPLETE KEY * KEY AFTER FULL COMPRESSION

CI 1 CI 2 CI 3 CI 4 CI 5 CI 6

10008 10080 10333 14000 14028 23630

1000 ===-==333 =400 =--2363 -

* LAST KEY IN THE CONTROL INTERVAL

RECONSTRUCTION OF FULLY COMPRESSED KEYS


CONTROL INTERVAL CI 1 CI 2 CI 3 CI 4 CI 5 CI 6 KEY AFTER FULL COMPRESSION 1000 ===-==333 = 400 = ----2363 RECONSTRCTED KEY* 1000F 100FF 10333 1400F 1FFFF 2363F

* F STANDS FOR X FF ( THE HIGHEST POSSIBLE VALUE )

DESIGNING FOR GOOD KEY COMPRESSION

* SINGLE FIELDS TEND TO COMPRESS WELL * MULTI - FIELD KEYS WITH STATIC INFORMATION IN MIDDLE COMPRESS POORLY * FRONT COMPRESSION BEST WHEN KEYS HAVE SAME LEADING CHARACTERS * REAR COMPRESSION BEST WHEN KEYS HAVE LARGE DIFFERENCES IN RIGHTMOST CHARACTERS

ADDITIONAL TUNING PARAMETERS


SHR WRITE CHECK RECOVERY

ERASE

SPANNED

* SHAREOPTION (4) - BUFFER INVALIDATION * WRITECHECK - WRITE FOLLOWED BY READ * RECOVERY - PREFORMATS DURING LOAD * ERASE - DELETE REWRITES ENTIRE DATA SET WITH ZEROS * SPANNED - MULTIPLE DATA I / Os FOR ONE RECORD

INFORMATION FOR TUNING


BATCH JOB TIME LISTCAT INFORMATION RESPONSE TIME

RMF REPORTS

CICS / IMS FILE ACCESS STATISTICS

LISTCAT CLUSTER AND DATA COMPONENTS


LISTCAT ENTRIES (TSOLAJE.BEST.FILE) ALL CLUSTER -------- TSOLAJE.BEST.FILE IN-CAT --ICFCAT EDPVTD HISTORY OWNER - IDENT ---------( NULL ) CEATION ------------------1989.010 RELEASE ------------------2 EXPIRATION --------------0000.000 PROTECTION - PSWD---- (NULL ) RACF ------------------------( NO ) ASSOCIATIONS DATA -------- TSOLAJE.TEST.DATA INDEX ------ TSOLAJE.TEST.INDEX DATA ---------- TSOLAJE.TEST.DATA IN -CAT ------ ICFCAT.EDPVTD HISTORY OWNER - IDENT ------------ ( NULL ) CREATION ----------------1989.010 RELEASE -------------2 EXPIRATION --------------0000.000 PROTECTION - PSWD ---------9 NULL 0 RACF ------------------------( NO) ASSOCIATIONS CLUSTER ---TSOLAJE.BEST.FILE ATTRIBUTES KEYLEN-----------------------5 AVGRECL-------------------80 BUFSPACE----------2560 CISIZE----------------------1024 RKP-----------------------------4 MAXLRECL----------------20 EXCPEXIT----------( NULL ) EXCPEXIT-----------------31 SHROPTNS (4 3) RECOVERY UNIQUE NOERASE INDEXED WRITECHK NOIMBED NOREPLICAT UNORDERED NOREUSE NONSPANNED STATISTICS REC-TOTAL------------------60000 SPLITS-CI---------------------252 EXCPS-------------7160 REC-DELETED-------------0 SPLITS-CA-------------------16 EXTENTS----------29 REC-INSERTED------------1000 FREESPACE-%CI-----------0 SYSTEM TIMESTAMP : X9FB31E7117BFB880 REC-UPDATED------------1000 FREESPACE-%CA----------0 REC-RETRIEVED ---------12000 FREESPC - BYTES --------267264 ALLOCATION SPACE-TYPE---------------TRACK HI-ALLOC-RBA-----------952320 SPACE-PRI-----------------2 HI-USED-RBA--------------952320 SPACE-SEC---------------1 VOLUME VOLSER--------------------EDPVTD PHYREC-SIZE---------------1024 HI-ALLOC-RBA----------952320 EXTENT-NUMBER--------------29 DEVTYPE ----------------X301020OE PHYRECS/TRK--------------31 HI-USED-RBA------------952320 EXTENT-TYPE-------------------X00 VOLFLAG----------------PRIME TRACKS /CA-----------------1

LISTCAT DATA COMPONENT ( continued)


VOLUME VOLSER------------------EDPVTD DEVTYPE------------X301020OE VOLFLAG-----------PRIME EXTENTS LOW-CCHH---------X00110002 HIGH-CCHH-------X00110003 LOW-CCHH-------X00170008 HIGH-CCHH ----- X00170008 LOW-CCHH-------X0017000E HIGH-CCHH-------X0017000E LOW-CCHH--------X001D0006 HIGH-CCHH-------X001D0006 LOW-CCHH--------X 001D0008 HIGH-CCHH-------X001D0008 LOW-CCHH--------X001D0008 HIGH-CCHH-------X001D0008 LOW-CCHH--------X003E000E HIGH-CCHH-------X003E000E LOW-CCHH--------X0046000E HIGH-CCHH-------X00490002 LOW-CCHH-------X00490002 HIGH-CCHH-------X00490002 LOW-CCHH--------X004A000E HIGH-CCHH-------X004A000E LOW-CCHH--------X00530008 HIGH-CCHH--------X00530008 LOW-CCHH--------X00630005 : LOW-CCHH--------X0257000E : LOW-CCHH--------X0244000C HIGH-CCHH-------X0224000C PHYREC-SIZE------------------1024 PHYRECS /TRK---------------31 TRACKS /CA------------------1 LOW -RBA----------------------0 HIGH -RBA--------------------63457 LOW -RBA---------------------63458 HIGH-RBA--------------------95231 LOW -RBA--------------------95232 HIGH -RBA------------------126975 LOW -RBA-------------------126976 HIGH-RBA------------------158719 LOW -RBA-------------------158720 HIGH-RBA------------------190453 LOW -RBA------------------190454 HIGH-RBA------------------222207 LOW-RBA------------------222208 HIGH -RBA---------------- 253951 LOW -RBA-----------------253952 HIGH -RBA----------------285695 LOW -RBA----------------285696 HIGH -RBA----------------317439 LOW -RBA-------------- 317440 HIGH -RBA------------- -349183 LOW -RBA------------- -349184 HIGH -RBA----------------380927 LOW -RBA-----------------380928 : LOW -RBA----------------603156 : LOW -RBA----------------920576 HIGH -RBA---------------952319 HI-ALLOC-RBA----------------952320 HI-USED-RBA-----------------952320 EXTENT-NUMBER ------29 EXTENT -TYPE----------X00

TRACKS--------------------------2 TRACKS--------------------------1 TRACKS--------------------------1 TRACKS--------------------------1 TRACKS------------------------- 1 TRACKS------------------------- 1

TRACKS------------------------ 1
TRACKS-------------------------1 TRACKS-------------------------1 TRACKS-------------------------1 TRACKS-------------------------1 TRACKS-----------------------1 TRACKS------------------------1 TRACKS------------------------1

LISTCAT INDEX COMPONENT


INDEX-------------------TSOLAJE-------------INDEX IN-CAT------------------ICFCAT.EDPVTD HISTORY OWNER-IDENT------------------(NULL) RELEASE--------------------------2 PROTECTION-PSWD---------------(NULL) ASSOCIATIONS CLUSTER--TSOLAJE.BEST.FILE ATTRIBUTES KEYLEN--------------------------5 RKP -----------------------------4 SHROPTNS(4 3) RECOVERY NOREUSE STATIATICS REC-TOTAL --------------------- 31 REC-DELETED------------------0 REC-INSERTED-----------------0 REC-UPDATED-----------------284 REC-RETRIEVED--------------0 ALLOCATION SPACE-TYPE---------------------TRACK SPACE-PRI-----------------------1 SPACE-SEC----------------------1 VOLUME VOLSER--------------------------EDPVTD DEVTYPE----------------- X3010200E VOLFLAG---------------PRIME EXTENTS: LOW-CCHH----------------X00110006 HIGH-CCHH --------------X00110006

CREATION----------------1989.010 EXPIRATION------------ 0000.000 RACF----------------------(NO)

AVGLRECL-------------0 MAXRECL-------------505 UNIQUE NOERASE

BUFSPACE-------------0 EXCOEXIT------------(NULL) WRITECHECK NOIMBED

CISIZE---------------512 CI /CA ---------------46 NOREPLICAT UNORDERED

SPLITS-CI--------------16 SPLITS------------------ 0 FREESPACE-%CI---- 0 FREESPACE-%CA----0 FREESPACE BYTES--7680 HI-ALLOC-RBA-------23552 HI-USED-RBA--------15872

EXCPS-----------------6687 EXTENTS-------------1 SYSTEM-TIMESTAMP: X9FB31E7117BFB880

INDEX: LEVELS--------------2 ENTRIES/SECT----5 SEQ-SET-RBA-----0 HIGH-LEVEL-RBA-1024

PHYREC-SIZE----------512 PHYRECS /TRK--------46 TRACKS / CA-----------1 LOW -RBA---------------0 HIGH -RBA--------------23551

HI-ALLOC-RBA------23552 HI-USED---------------15872

EXTENT-NUMBER--1 EXTENT-TYPE-------X00

TRACKS----------------1

RMF DASD ACTIVITY REPORT


OS / VSZ DIRECT ACCESS DEVICE ACTIVITY SYSTEM ID 3090 DATE XX/XX/XX RPT VERSION 3.4.1 TIME 00.20.20 INTERVAL 15.03.627 CYCLE 0.500 SECONDS

TOTAL SAMPLES =1.807 DEVICE DEV VOLU LCU ACTIVITY NUM SER RATE 260 261 262 263 264 265 266 267 310 311 312 313 314 315 316 317 TSO008 018 TSO009 018 SMFV 018 CHRE S 018 CHIDLB 018 CHICAT 018 CHISMP 018 CHILIB 018 LCU 018 PPLIB1 018 CICSA1 018 CICSA2 018 CICSA3 018 CICSA4 018 CICSA5 018 CICSA6 018 CICSA7 018 LCU 018 2.131 4.607 1.121 37.454 0.175 11.302 0.102 0.602 57.494 5.269 19.560 24.756 2.763 9.065 9.346 13.196 12.590 96.544

AVG RESP TIME 17 20 16 156 15 187 24 20 141 20 32 39 23 24 21 22 23 28

AVG IOSQ TIME 0 2 0 131 0 116 0 0 108 3 12 18 1 3 4 5 5 9

AVG AVG AVG CUB DB PEND DELAY DELAY TIME 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.2 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.3 0.3 0.5 0.2 0.3 0.3 0.3 0.4 0.2 0.3 0.3 0.2 0.2 0.2 0.3 0.3 0.3

AVG DISC TIME 13.2 13.9 13.1 15.5 13.0 57.7 19.0 14.5 23.5 9.5 16.3 18.5 18.7 16.8 14.3 13.5 14.7 15.8

AVG CONN TIME 3.1 3.1 2.9 8.6 1.8 13.7 4.6 5.4 8.8 7.4 3.0 3.0 3.0 3.1 3.0 3.3 3.1 3.3

% % % AVG % DEV DEV DEV DS % MT CON UTI RESV OPEN ALLOC PEND 0.67 1.45 0.32 32.03 0.03 15.52 0.05 0.32 6.30 3.90 5.96 7.53 0.84 2.76 2.84 4.29 3.84 4.00 3.49 0.0 7.84 0.0 1.80 0.0 90.07 0.0 0.26 0.0 80.72 0.0 0.24 0.0 1.19 0.0 23.20 0.0 8.93 0.0 37.83 0.0 53.29 0.0 6.01 0.0 18.00 0.0 16.18 0.0 22.09 0.0 22.31 0.0 23.09 0.0 70.0 73.0 3.0 9.7 0.0 18.0 5.0 1.0 180 13.0 5.0 1.0 1.0 1.0 4.0 1.0 3.0 29.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

CICS FILE STATISTICS

* * * * * * * * * * * * * * * * * * * * * * * * * * * * FILE STATISTICS* * * * * * * * * * * * * * * * * * * ** * * * ** * * * *

FILE NAME

GET REQSTS

GET UPD REQSTS

BROWSE REQSTS

ADD REQSTS

UPDATE REQSTS

DELETE REQSTS

VSAM EXCP DATA

REQUESTS WAIT-ON-STRING INDEX TOTAL HIGHEST

ACCUNTDB CUSTOMER DATAENDB INVENTOR PARTS TABLEDB TRMNALDB VENDOR DFHCSD

885 441 0 0 1156 708 0 0 0

0 125 0 70 1330 0 179 675 0

0 0 0 0 0 0 0 15600 0

0 567 353 0 148 0 0 702 0

0 123 0 0 1 340 0 17 8 675 0

0 0 0 71 0 0 0 0 0

834 1142 532 142 3948 266 348 2252 0

30 235 84 135 1641 0 16 1692 0

0 124 0 1 306 1 8 203 0

0 18 0 1 48 1 4 20 0

TOTALS>

3190

2379

15600

1770

2316

71

9464

3833

643

* * * * * * * * * * * * * ** * * ** * * ** ** * * * * * ** * * * * * *** * * * ** * * * ** * * * ** * * ** * * ** * * ** * * ** * * * ** * ** * * * ** * ** * ** * * ** * ** * * *

TUNING SUMMARY BUFFER SPACE


INDEX OPTIONS

SHR

CISZ
KEY COMPRE -SSION

FREE SPACE

SPACE ALLOCATION

WRITE CHECK

MULTI VOLUME

TOPIC 11 : Alternate Indexes


Topic Objectives Terminal objectives : After attending this topic the student should know define and use alternate indexes
Enabling objectives :

Upon completion of this topic the student should be able to : * State two reasons for having an alternate index. * Describe the basic contents of an alternate index. * Use a path to access base cluster records in alternate key sequences. * Define, load and use an alternate index. * State the impact of SHAREOPTIONS when opening a base cluster and associated alternate indexes. * Describe programming and JCL considerations.

NEED FOR ALTERNATE INDEX KSDS


INDEX : EMPLOYEE NAME * ACCESS A KSDS BY KEY OTHER THAN THE PRIME KEY - SOCIAL SECURITY NUMBER - DEPARTMENT NUMBER - EMPLOYEE NUMBER - ZIP CODE * ACCESS AN ESDS BY KEY

DATA : EMPLOYEE RECORDS

ALTERNATE INDEX EXAMPLE

ALTERNATE INDEX 1 (DEPT.NO)

ALTERNATE INDEX 2 (SOCIAL SEC.NO)

BASE CLUSTER (NAME )


3235 3240 3247 3247 3247 DUTT $ .. SINGH $ .. MURTHY $ .. KINNEY $ .. PETTY $ ... :

015-35-7890 SINGH $ .. 183-96-4116 MURTHY $ .. 235-04-2372 PETTY $ . : : :

MURTHY 3247 $ .. ARNOLD 4711 $ .. KINNEY 3247 $ .. DUTT 3235 $.. :

ALTERNATE INDEX ARCHITECTURE


ALTERNATE - INDEX INDEX COMPONENT

3235

DUTT

3240

SINGH

3247

MURTHY KINNEY PETTY

FREE SPACE

4711

SIEGEL

PRICE

ARNOLD

FREE SPACE

ALTERNATE - INDEX DATA COMPONENT

MURTHY

3247

ARNOLD

4711

KINNEY

3247

FREE SPACE

NEWTON

3235

PETTY

3247

PRICE

4711

FREESPACE

SIEGEL

4711

WRIGHT

3240

FREE SPACE

BASE CLUSTER DATA COMPONENT

ALTERNATE INDEX DATA RECORD FORMAT

FLAG BYTE (1 byte )

POINTER NUMBER LENGTH ALTERLENGTH OF POINT OF ALTE- -NATE POINTER 1 .. POINTER N ( 1 byte ) -ERS RNATEKEY KEY ( 2 bytes ) (1 byte )

0 = ESDS BASE CLUSTER 1 = KSDS BASE CLUSTER PRIME KEY LENGTH X NUMBER NONUNIQUE PRIME KEYS -OR4X NUMBER NONUNIQUE POINTERS

RECORD SIZE

ALTERNATE + KEY LENGTH

CLUSTER / AIX PROCESSING


OBJECT OPENED
BASE CLUSTER

KEY SPECIFIED IN PROGRAM

RECORD RETRIEVED

ALTERNATE INDEX

DD STATEMENTS

//DD1

DD

DSN=PAYROLL . MASTER . DISP = SHR

//DD2 //

DD

DSN = PAYROLL. DEPT. AIX, DISP = SHR

//DD3 //

DD

DSN = PAYROLL. DEPT. PATH, DISP = SHR

PATH CONCEPT

ALTERNATE INDEX1

ALTERNATE INDEX2

PATH IS VEHICLE FOR ACCESS VIA ALTERNATE KEY

PATH 1

PATH 2

PATH CONSISTS OF BASE CLUSTER AND AN ALTERNATE INDEX MULTIPLE PATHS FOR SAME ALTERNATE INDEX

INDEX { DATA

BASE CLUSTER

THE UPGRADE SET

ALTERNATE INDEX 1

ALTERNATE INDEX 2

UPGRADE SET ALTERNATE INDEX 3 BASE CLUSTER

ALTERNATE INDEX 4

AUTOMATIC UPGRADE

* FOR MEMBERS OF UPGRADE SET * IF BASE CLUSTER OPENED FOR OUTPUT OR VIA UPDATE PATH * NEW POINTERS ARE ADDED TO END OF POINTER SET OF ALTERNATE INDEX RECORD ( ARRIVAL - TIME ORDER ) * ALTERNATE KEYS EXCEPT THE KEY OF REFERENCE MAY BE CHANGED * UPDATES OR INSERTS FAIL IF THEY PRODUCE A NONUNIQUE KEY FOR A UNIQUEKEY MEMBER OF THE UPGRADE SET

CREATING AN ALTERNATE INDEX


DEFINE ALTERNATEINDEX ( NAME ( entryname ) RELATE ( entryname [ /password ]) : : )

DEFINE PATH ( NAME (name ) PATHENTRY ( entryname [ / password ] ) : : )

BLDINDEX INDATASET ( entryname [ / paeeword] ) OUTDATASET ( entryname [ / password ] ) : : : :

DEFINE ALTERNATEINDEX
DEFINE ALTERNATEINDEX ( NAME ( AIX name ) RELATE ( base cluster name ) KEYS ( length offset ) -

UNIQUEKEY
UPGRADE RECORDSIZE VOL (volser ) CYL TRK

NONUNIQUEKEY
NOUPGRADE ( avg max )

REC

(pri

sec )

DEFINE ALTERNATE INDEX EXAMPLE

DEFINE ALTERNATEINDEX ( NAME ( PAYROLL.DEPT.AIX) RELATE (PAYROLL.MASTER) VOLUMES (AIXOO1 ) UPGRADE) DATA ( NAME (PAYROLL.DEPT.AIX.DATA) TRACKS ( 5 5 ) RECORDSIZE (200 4046 ) KEYS ( 7 65 ) NONUNIQUEKEY ) INDEX (NAME ( PAYROLL.DEPT.AIX.INDEX) IMBED )

DEFINE PATH

DEFINE PATH
NAME

(
( path name )

PATHENTRY
UPDATE

( AIX name )
NOUPDATE )

DEFINE PATH EXAMPLE

DEFINE PATH (NAME ( PAYROLL.DEPT.PATH) PATHENTRY ( PAYROLL.DEPT.AIX) UPDATE )

STEPS FOR LOADING AN ALTERNATE INDEX

1. DEFINE THE ALTERNATE INDEX AND PATH

2. EXTRACT ALTERNATE KEYS AND POINTERS

3. ORDER KEYS AND POINTERS BY ALTERNATE KEY SEQUENCE

4. BUILD ALTERNATE INDEX RECORDS

BLDINDEX

BLDINDEX

{ INFILE (ddname ) INDATASET (base cluster name ) } -

{ OUTFILE (ddname ) OUTDATASET (AIX name ) }


[ EXTERNALSORT INTERNALSORT ]

[ WORKFILES (ddname ddname ) ]

BLDINDEX EXAMPLE

BLDINDEX INDATASET ( PAYROLL.MASTER )

OUTDATASET ( PAYROLL.DEPT.AIX ) -

ALTERNATE INDEX RESTRICTIONS


NO ALTERNATE INDEXES FOR RRDS OR LDS

BASE CLUSTER MUST NOT BE EMPTY FOR BLDINDEX


UPGRADE DONE ONLY FOR NON -EMPTY ALTERNATE INDEXES

LENGTH OF ALTERNATE KEYS MUST NOT EXCEED 255


MAXIMUM NUMBER OF ALTERNATE KEY POINTERS IS 32K

RECORDS LARGER THAN 32760 NOT SUPPORTED BY REPRO / EXPORT

ALTERNATE INDEX TRADE - OFFS

FUNCTIONAL CAPABILITY PERFORMANCE ALTERNATE KEY PROCESSING 1. 2. 3. 4. READ AIX INDEX READ AIX DATA [ READ BASE INDEX ] READ BASE DATA

AIX BUFFER ALLOCATION EXAMPLE


DEFINE SPECIFICATIONS
BASE CLUSTER. DATA CI 4096, INDEX CI 512, BUFSP 9728 UPGRADE SET : DATA CI INDEX CI AIX1 4096 512 AIX2 2048 512 AIX3 2048 1024 AIX2 PATH OPEN FOR UPDATE PROGRAM SPECIFIES SEQ OUTPUT PROCESSING DD BUFND-3. BUFNI-6

EXECUTION

BUFFER ALLOCATION

BASE CLUSTER : 2 DATA 1 INDEX 2 INDEX AIX2: 3 DATA 6 INDEX UPGRADE SET: 2 DATA(AIX1) 1 INDEX(AIX1) 2 DATA(AIX3) 1 INDEX(AIX3)

8192 512 1024 8144 3072 8192 512 4096 1024

9728 9216 8704 5120 32768

SHAREOPTION IMPACT
PATH 1 UPGRADE SET PATH 2

AIX

AIX

SHR ( 2 3 )

SHR ( 2 3 )

BASE CLUSTER SHR (1 3 ) MOST RESTRICTIVE SHAREOPTION GOVERNS ALL OBJECTS OPENED

ACCESSING THROUGH A PATH

KEYED PROCESSING AS FOR KSDS ALTERNATE KEY ASSOCIATED WITH PATHENTRY AIX IS KEY OF REFERENCE HOWEVER, - KEY OF REFERENCE AND PRIME KEY CANNOT BE CHANGED - LIMITATIONS IMPOSED BY BASE CLUSTER APPLY : NO ERASE IF BASE CLUSTER AN ESDS, NO UPDATE WITH LENGTH CHANGE IF BASE CLUSTER AN ESDS, INSERTS GO TO END OF ESDS.

HANDLING OF NON - UNIQUE KEYS


ALTERNATE INDEX RECORD

3247

MURTHY PETTY

KINNEY

BASE CLUSTER DATA COMPONENT

MURTHY DUTT

3247 3235

ARNOLD 4711 PETTY 3247

KINNEY PRICE

3247 4711

POINT POSITIONS TO FIRST NON-UNIQUE OF ALTERNATE INDEX RECORD (MURTHY) GET SKIP - SEQUENTIAL OR DIRECT RETRIEVES FIRST NON-UNIQUE AS INDICATED IN ALTERNATE INDEX RECORD (MURTHY) GET SEQUENTIAL RETRIEVES NON-UNIQUES IN ORDER INDICATED IN ALTERNATE INDEX RECORD { MURTHY, PETTY, KENNEY }

TOPIC 12 : Data Set Reorganization, Backup and Recovery


Topic objectives Terminal objective: After attending this topic the student should know how to use the IDCAMS commands and other MVS products to backup and restore VSAM data sets. Enabling objectives :
Upon completion of this topic the student should be able to: * Understand the need for data set backup. * State the advantage and disadvantage of the following backup/recovery techniques: - REPRO - EXPORT / IMPORT - DFDSS DUMP / RESTORE - DFHSM HBACKDS / HRECOVER * Determine the frequency of backup. * Be able to access when a data set requires reorganization. * Code the AMS commands that can be used for backup, recovery and data set reorganization.

REORGANIZATION, BACKUP AND RECOVERY


MOVING FILES ? BAD DATA ? FRAGMENTATION ?

UNUSABLE FILE ?

TOO MANY SPLITS ?

FILE MISSING ?

TOO MANY EXTENTS ?

DATA MISSING ?

FILE NOT PROPERLY CLOSED ?

BACKUP AND RECOVERY TASKS


ROUTINE BACKUP

DETERMINE WHEN / WHAT TO BACKUP PERFORM BACKUP BY DATA SET OR VOLUME


AFTER DATA LOSS

ANALYSIS
WHAT BROKE ? WHAT DATA SETS WERE LOST ? HOW RECENT ARE THE BACKUPS? WHAT JOBS MUST BE RERUN?

ACTION

RECOVER DATA FROM BACKUP COPY DO FORWARD RECOVERY

REORGANIZING A KSDS WHY REORGANIZE ? * FREESPACE SATURATED * DATA SET FRAGMENTED - CI / CA SPLITS - SECONDARY EXTENTS

AFTER REORGANIZATION * PHYSICAL SEQUENCE SAME AS LOGICAL SEQUENCE * FREESPACE REDISTRIBUTED * DATA COMPONENT CONSOLIDATED, NO SECONDARY EXTENTS * INDEX COMPONENT RECONSTRUCTED

TOOLS
AMS COMMANDS REPRO EXPORT / IMPORT MVS / DFP STORAGE MANAGEMENT PRODUCTS ISMF

DFDSS - DUMP / RESTORE DFHSM - HBACKDS / HRECOVER

REPRO - TECHNIQUE 1

MASTER

REPRO

BACKUP

KSDS
BACKUP IS IMMEDIATELY USABLE BACKUP IS REORGANIZED USES DASD SPACE

KSDS

REPRO - TECHNIQUE 2
STEP 1 REPRO
ESDS (DEFINED REUSE) OR SEQUENTIAL

MASTER

BACKUP

STEP 2 DELETE

STEP3 DEFINE STEP 4 REPRO

REORGANIZED RECORDS

REPRO EXAMPLE
//BAKREO JOB BACKUP AND REORG //BACKUP EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = A //SYSIN DD * REPRO IDS ( EXAMPLE .MASTER ) ODS ( EXAMPLE .BACKUP ) REUSE IF LASTCC = 0 THEN DO DELETE ( EXAMPLE MASTER ) DEFINE CLUSTER ( NAME (EXAMPLE.MASTER ) : REPRO IDS ( EXAMPLE.BACKUP ) ODS( EXAMPLE.MASTER ) END /* //

EXPORT / IMPORT

EXPORT

IMPORT

* DATA IS REORGANIZED * REDEFINITION IS EASY * ATTRIBUTES CAN BE CHANGED OR ADDED

EXPORT

CATALOG

DATA SET

EXPORT entryname {OUTFILE (ddname) CIMODE TEMPORARY

EXPORT OUTDATASET (entryname) }-

RECORDMODE PERMANENT

EXPORT COMMAND SYNTAX

EXPORT entryname [ /password ] {OUTFILE(ddname) OUTDATASET(entryname)} [ CIMODE RECORDMODE ] [ TEMPORARY PERMANENT ] [ INHIBITSOURCE NOINHIBITSOURCE ] [ INHIBITTARGET NOINHIBITTARGET ] [ERASE NOERASE ] [ PURGE NOPURGE ]

EXPORT BY CI
EXPORT EXAMPLE.SEDS OUTLINE ( EXPTAPE ) CIMODE TEMPORARY
CI

CI CI CI CI CI

IMPORT
IMPORT {INFILE (ddname) INDATASET (entryname ) } {OUTFILE(ddname) OUTDATASET(entryname)} : OBJECTS((objectname) NEWNAME (newname) VOLUMES(volser . . . .) : )

IMPORT

CATALOG DATA SET

IMPORT COMMAND SYNTAX

IMPORT {INFILE(ddname) INDATASET(entryname) } {OUTFILE(ddname) OUTDATASET(entryname) } [OBJECTS((entryname [NEWNAME(name)] [VOLUMES(volser)])[(entryname. . . . .)])] [INTOEMPTY ]

IMPORT INTO EMPTY

STEP 1 EXPORT

STEP 4 IMPORT INTOEMPTY

ORIGIONAL MASTER

STEP 2 DELETE

STEP 3 DEFINE

NEW MASTER

WHAT IS DFDSS ? DATA FACILITY DATA SET SERVICES

PRIMARY FUNCTIONS
BACKING UP AND RECOVERING DATA
MOVING DATA CONVERTING DATA TO / FROM STORAGE MANAGE-MENT SUBSYSTEM MANAGING SPACE

DFDSS DUMP / RESTORE

DUMP

TAPE

OR

RESTORE DASD

INVOKING DEDSS

JCL

DFDSS

APPLICATION INTERFACE

ISMF

DFDSS
//DFDSS //STEP1 //INDASD //OUTTAPE // //FILTER DD JOB EXEC DD DD

JCL

PGM = ADRDSSU UNIT = 3380, VOL =SER =111111,DISP =OLD UNIT = 3480, VOLUME=SER=TAPE01,LABEL=(1,SL), DISP = (NEW, KEEP), DSNAME =USER2.DUMP data set containing filtering criteria (optional) command data set

//SYSIN

DD

DUMPING A DATA SET

DUMP MY.DATASET

//MYJOB JOB accounting information, REGION = nnnnk //STEP1 EXEC PGM = ADRDSSU //SYSPRINT DD SYSOUT = A //DASD DD UNIT=3380,VOL=SER=111111,DISP=OLD //TAPE DD UNIT=3480,VOL-SER=TAPE01, //LABEL=(1,SL),DISP=(NEW,KEEP),DSNAME=MY.DATASET.BACKUP //SYSIN DD * DUMP DATASET(INCLUDE(MY.DATASET)) INDDNAME(DASD) OUTDDNAME(TAPE) /*

RESTORING A DATA SET

RESTORE MY.DATASET

//MYJOB JOB accounting information, REGION = nnnnk //STEP1 EXEC PGM = ADRDSSU //SYSPRINT DD SYSOUT = A //TAPE DD UNIT=3480,VOL=SER=TAPE01, //LABEL=(1,SL),DISP=(OLD,KEEP),DSNAME=MY.DATASET.BACKUP //DASD DD UNIT=3380,VOL=SER=111111,DISP=OLD //SYSIN DD * RESTORE DATASET(INCLUDE(MY.DATASET)) INDDNAME(TAPE) OUTDDNAME(DASD) REPALCE /*

DFHSM

DATA FACILITY HIERARCHIAL STORAGE MANAGER

SOFTWARE SUBSYSTEM CONTINUOSLY RUNNING LOGICAL EXTENSION OF MVS DATA SET ORIENTED

CREATOR OF BACKUP TO DASD , TAPE, AND CATRIDGE


SPACE MANAGER OF 3350, 3375, 3380, AND 3390

DFHSM MAJOR FUNCTIONS

BACKUP MANAGEMENT
* BACKUP

SPACE MANAGEMENT
* MIGRATION

* RECOVERY

* RETIREMENT
* DELETION

* SPACE RECLAMATION

HBACKDS HBACKDS dsname [/ password] [NOWAIT WAIT [ EXTENDRC]]

EXAMPLES :
HBACKDS
HBACKDS HBACKDS

EXAMPLE1.MY.ESDS
EXAMPLE2.*.KSDS NOWAIT

EXAMPLE3.MY.DATA WAIT EXTENDRC

HRECOVER
HRECOVER dsname[ / password ] [ GENERATION (gennum) DATE(date)] [ NEWNAME(newdsname)] [ REPLACE ] [ TOVOLUME (volid) UNIT(unittype) ] [ NOWAIT WAIT [EXTENDRC] ]

EXAMPLE :
HRECOVER EXAMPLE1.MY.ESDS HRECOVER EXAMPLE2.MY.DATA UNIT (3380) WAIT REPLACE NOWAIT

TOVOLUME (VOL007)

STORAGE MANAGEMENT SOFTWARE


USER / ADMINISTRATOR

ISPF

INTERACTIVE STORAGE MANAGEMENT FACILITY(ISMF)

RACF

DFDFF

DFHSM

MVS / ESA DFP

DFSORT

MANAGING WITH ISMF

DSN
1. VTOC 2. CAT

SELECTION PANELS

DATA SET LIST LO : : DSN : : XXX : :

FILTER SORT BROWSE EDIT CLIST

DFDSS INVOCATION PANELS SUBMIT DFDSS JOB

DFHSM

ISMF DATA SET SELECTION


DATA SET SELECTION ENTRY PANEL Page 1 of 3 COMMAND ===> TO GENERATE A DATA SET LIST. SPECIFY: DATA SET NAME ===> ** (fully or partially qualified) SELECT SOURCE OF GENERATED LIST ===>2 ( 1or2) 1.GENERATE LIST FROM VTOC VOLUME SERIAL NUMBER ===> (fully or partially specified) 2 GENERATE LIST FROM CATLOG CATLOGNAME ===> CATLOG PAASSWORS ===> (if specified protected) VOLUME SERIAL NUMBER ===> (fully or partially specified) ACQUIRE DATA FROM VOLUME ===> N ( Y or N) ACQUIRE DATA IF DFHSM MIGRATED ===> N (Yor N) USE ENTER TO PERFORM SELECTION:USE DOWN COMMAND TO VIEW NEXT SELECTION PANEL;USE HELP COMMAND FOR HELP;USE END COMMAND TO EXIT.

DATA SET NAME SPECIFICATION


DATA SET NAME * ** SYS1.*LIB SYS1.*.LOAD SYS1.** ** *.*P*M *.NET.G*V* DESCRIPTION All 2 level DS for this user All data sets for this user All 2 level SYS1 DS ending LIB 3 qualifiers Any number of qualifiers All data sets. Catname required. 3rd qual. starts with P and ends M ALL GDS with 2nd qualifier NET

ADDITIONAL SELECTION CRITERIA


Page 3 of 3 COMMAND = = => TO FURTHER LIMIT THE GENERATED LIST. SPECIFY ONE OR MORE: A SINGLE VALUE OR RANGE OF VALUES : REL OP
ALLOCATED SPACE = => BLOCK / CI SIZE = => BLOCK UNUSED = = => CREATION DATE = = = > EXPIRATION DATE = => LAST REFERENCE DATE = => NUMBER OF EXTENTS ===> OPTIMAL BLOCK/CI SIZE===> PERCENT SPACE NOT USED==> RECORD LENGTH ===> SECONDARY ALLOCATION ==> USED SPACE===>

DATA SET SELECTION ENTRY PANEL

Page 2 of 3

VALUE

AND/OR REL OP VALUE

USE ENTER TO PERFORM SELECTION; USE UP/DOWN COMMAND FOR OTHER SELECTION ON PANELS;USE HELP COMMAND FOR HELP;USE END COMMAND TO EXIT

DATA SET LIST


DATA SET LIST COMMAND = = => SCROLL==>DATA ENTRIES 1-5 OF 5 Data Columns 3-7 of 21

ENTER LINE OPERATIONS BELOW


LINE OPERATOR ---(1)---------

ALOCC ALLOC %NOT NUM ALLOC DATASETNAME SPACE USED USED EXT UNIT ---------(2)--------- ---(3)--- ---(4)--- ---(5)-- --(6)-- --(7)--USER43.TEST.CLIST 46 USER43.ISMF.DGTLLIB 48 USER43.ISPPROF 93 USER43.SPFLOG1.LIST 2623 USER43.TEMP.DATASET 4684 46 36 93 1311 93 0 25 0 50 98 1 1 1 7 1 TRK TRK TRK TRK TRK

----------------------------------------------BOTTOM OF DATA---------------------------------------

DATA SET LIST COMMANDS


PROC.MODE ENVIRONMENT

COMMAND
FILTER SORT FIND CLEAR RESHOW PROFILE UP DOWN RIGHT LEFT SAVE END COMPRESS COPY DUMP RESTORE

FG
X X X X X X X X X X X X

BG

ISMF
X X X X X X X X X X X X

DFDSS

SHORT DESCRIPTION
FURTHER TRIMMING OF LIST SORT ON DEFINED COLUMN FIND COLUMN CLEAN LINE OPERATORS RESHOW HIDDEN LINES EXAMINE / CHANGE ISMF PROFILE SCROLL UPWARDS SCROLL DOWNWARDS SCROLL TO THE RIGHT SCROLL TO THE LEFT SAVE THE LIST IN A TABLE DS GO TO PREVIOUS LEVEL

X X X X

X X X X

COMPRESS PDS COPY DATA SET DUMP DATA SET RESTORE DUMPED DATA SET

RELEASE

RELEASE UNUSED SPACE IN DS

DATA SET LIST LINE COMMANDS


Line operator BROWSE CLIST COMPRESS CONDENSE COPY DELETE DUMP EDIT HIDE HALTERDS HBACKDS HBDELETE HMIGRATE HRECALL HRECOVER RELEASE RESTORE Proc mode
FG X X BG PDF X

Environment
TSO DFDSSDFHSM X

Description
Browse data set Invoke TSO CLIST Compress PDS Reclaim unused Copy data set Delete data set Dump data set Edit data set Hide line Change bkup parm Back up data set Delete backup copy Migrate dat set Recall data set Recreate data set Release unused Recreate data set

X
X X X X X

X
X X X X X X X X X X X

X
X X X X X X X X X

TOPIC 13 : Problem Analysis Aids


Topic objectives Terminal objective: After attending this topic the student should know the two principal problem analysis tools used to identify and trace VSAM errors. Enabling objectives:: Upon completion of this topic the student should be able to: * Invoke IDCAMS EXAMINE to test the structure of a KSDS. * Interpret EXAMINE output and recover from a KSDS structural error. * Explain the use of GTF to trap VSAM - related events.

PROBLEM ANALYSIS

ERROR RECOGNITION ERROR IDENTIFICATION

RECOVERY

AVAILABILITY

KSDS STRUCTURAL ERRORS

KSDS

INDEX

EXAMINE
INDETEST

* AMS COMMAND * CROSS - CHECKS VERTICAL AND HORIZONTAL POINTERS IN THE INDEX * READS DATA SET SEQUENTIALLY CHECKS RECORD, CI, AND FREESPACE INTEGRITY

DATATEST DATA

EXAMINE - IDCAMS COMMAND

EXAMINE NAME (clustername [/password ] ) [ INDEXTEST NOINDEXTEST ] [ DATATEST NODATATEST ] [ ERRORLIMIT (value) ]-

EXAMINE - NO ERRORS

IDCAMS SYSTEM SERVICES EXAMINE NAME (EXAMINE.TEST.KSDS) INDEXTEST DATATEST ERRORLIMIT (10) IDC017001 IDC017241 IDC017011 IDC017091 IDC017081 IDC017101 IDC017111 IDC017121 IDC017221 INDEXTEST BEGINS INDEXTEST COMPLETE - NO ERRORS DETECTED DATASET BEGINS DATASET COMPLETE - NO ERRORS DETECTED 45 CONTROL INTERVALS ENCOUNTERED DATA COMPONENT CONTAINS 1000 RECORDS DATA COMPONENT COTAINS 0 DELETED CONTROL INTERVALS MAXIMUM LENGTH DATA RECORD CONTAINS 255 BYTES 65 PERCENT FREE SPACE

IDC00011 FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0

EXAMINE - INDEX ERROR


EXAMINE NAME (BROKEN.KSDS) INDEXTEST DATATEST ERRORLIMIT (10) IDC017001 INDEXTEST BEGINS IDC117011 STRUCTURAL PROBLEM FOUND IN INDEX IDC017201 INDEX CONTROL INTERVAL DISPLAY AT RBA 0 FOLLOWS 000000 01F90301 00000000 00000000 00000000 00000019 01BB01E6 09000000 00000000 *..9..W..* 000020 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *. ..* 000040 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *.* 000060 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *.* 000080 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *.* 0000A0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *.* 0000C0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *.* 0000E0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *.* 000100 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *..* 000120 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *..* 000140 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *.* 000160 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *..* 000180 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *.* 0001A0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 * ..97* 0001C0 F5040307 F8F5F304 03060014 F7F3F104 0305F6F0 040204F4 F8F70403 030017F0 *5853731..60487..0* 0001E0 F0F0FOF3 F6F50007 02F2F4F3 040301F0 FOFOFOF1 F2F10007 000001F9 01F90000 *000365..2430000121.9.9* IDC017141 ERROR LOCATED AT OFFSET 00000010 IDC217011 MAJOR ERRORS FOUND BY INDEXTEST IDC317051 DATATEST NOT PERFORMED DUE TO SEVERE INDEXTEST ERRORS IDC00011 FUNCTION TERMINATED.CONDITION CODE IS 12

EXAMINE - DATA ERROR


EXAMINE NAME (BROKEN,KSDS) INDEXTEST DATATEST ERRORLIMIT(10) IDC017001 INDEXTEST BEGINS IDC017241 INDEXTEST COMPLETE - NO ERRORS DETECTED IDC017011 DATATEST BEGINS IDC117331 DATA COMPONENT KEY SEQUENCE ERROR IDC017171 DATA KEY FOLLOWS -000000 FOFOFOF O FOFOF3F 1

=00000031

<

IDC017131 DATA CONTROL INTERVAL DISPLAY AT RBA Q FOLLOWS 000000 C1C2C3C4 C5C6C7C8 C9D1D2D3 D4D5D6D7 D8D9E2E3 E4E5E6E7 E8E9C1C2 C3C4C5C6 *ABCDEFGHIJKLMNOPQRSTUVWXYZA* 000020 C7C8C9D1 C1C2C3C4 C5C6C7C8 C9D1D2D3 D4D5D6D7 D8D9E2E3 E4E5E6E7 E8E9C1C2 *GHIJABCDEFGHIJKLMNOPQRSTUVWX* 000040 C3C4C5C6 C7C8C9D1 FOFOFOFO FOFOFOF1 4DC2C3C4 C5C6C7C8 C9D1D2D3 D4D5D6D7*CDEFGHIJ00000001 BCDEFGHIJKLMNO* 000060 D8D9E2E3 E4E5E6E7 E8E9C1C2 C3C4C5C6 C7C8C9D1 C1C2C3C4 C5C6C7C8 C9D1D2D3 *QRSTUVWXYZABCDEFGHIJABCDEFG* 000080 D4D5D6D7 D8D9E2E3 E4E5E6E7 E8E9C1C2 C3C4C5C6 C7C8C94D FOFOFOFO FOFIOF1 *MNOPQRSTUVWXYZABCDEFGHI0011* 0000A0 4040C3C4 C5C6C7C8 C9D1D2D3 D4D5D6D7 D8D9E2E3 E4E5E6E7 E8E9C1C2 C3C4C5C6 * CDEFGHIJKLMNOPQRSTUVWXYZAB* 0000C0 C7C8C9D1 C1C2C3C4 C5C6C7C8 C9D1D2D3 D4D5D6D7 D8D9E2E3 E4E5E6E7 E8E9C1C2 *GHIJABCDEFGHIJKLMNOPQRSTUVW * 0000E0 C3C4C5C6 C7C84040 FOFOFOFO FOFOFOF1 404040C4 C5C6C7C8 C9D1D2D3 D4D5D6D7 * CDEFGH 00000031 DEFGHIJKLMNOP* 000100 C3C4C5C6 C7C84040 FOFOFOFO FOFOFOF1 404040C4 C5C6C7C8 C9D1D2D3 D4D5D6D7 * CDEFGH 00000031 DEFGHIJKLMNOP* 000120 C7C8C9D1 C1C2C3C4 C5C6C7C8 C9D1D2D3 D4D5D6D7 D8D9E2E3 E4E5E6E7 E8E9C1C2 *GHIJABCDEFGHIJKLMNOPQRSTUVWX 000140 C1C2C3C4 C5C6C7C8 C9D1D2D3 D4D5D6D7 D8D9E2E3 E4E5E6E7 E8E9C1C2 C3C4C5C6 *ABCDEFGHIJKLMNOPQRSTUVWXYZA* 000160 D8D9E2E3 E4E5E6E7 E8E9C1C2 C3C4C5C6 C7C8C9D1 C1C2C3C4 C5C6C7C8 C9D1D2D3 *QRSTUVWXYZABCDEFGHIJABCDEFG* 000180 C3C4C5C6 C7C84040 FOFOFOFO FOFOFOF1 404040C4 C5C6C7C8 C9D1D2D3 D4D5D6D7 * CDEFGH 00000031 DEFGHIJKLMNOP* 0001A0D8D9E2E3E4E5E6E7 E8E9C1C2 C3C4C5C6 C7C8C9D1 C1C2C3C4 C5C6C7C8 C9D1D2D3 *QRSTUVWXYZABCDEFGHIJABCDEFG* 0001B0 D4D5D6D7 D8D9E2E3 E4E5E6E7 E8E9C1C2 C3C4C5C6 C7C8C94D FOFOFOFO FOFIOF1 *MNOPQRSTUVWXYZABCDEFGHI0011* *********************************0001E0 THRU 002FC0 LINES DELETED*********************************************************** 002FE0 00000000 00000000 00000000 00000000 00000000 00000800 7A400050 2620096 *.& ..0* IDC017141 ERROR LOCATED AT OFFSET 000000138 IDC217031 MAJOR ERRORS FOUND BY DATASET IDCOOO11 FNCTION COMPLETED. HIGHEST CONDITION CODE WAS 8 IDC00021 IDCAMS PROCESSING COMPLETE.MAXIMUM CONDITION CODE WAS 8

ACTIONS AFTER EXAMINE

RC # 0
KSDS.INDEX KSDS.INDEX

KSDS.DATA

KSDS.DATA

RECOVERY STEPS
INDEX ERROR: 1. DATA ERROR : 1.

2.
3. 4. 5. 6. 7. 8.

2.
3. 4. 5.

VSAM TRACE FACILITY

USER PROGRAM

VSAM

APPLICATION DATA SET

GTF

AM01 GTF RECORD

TRACE DATA SET

STARTING THE TRACE


//MYJOB JOB... //STEP1 EXEC PGM = MYPROG //INFILE DD DSN=MYDATA.INPUT,DISP=OLD.AMP=(TRACE) //OUTFILE DD SYSOUT = A

// DD ..AMP=(TRACE)

OPEN TRACING

//. DD ..AMP=(TRACE=(subparameters)) OPEN AND R /M TRACING

TRACE SUBPARAMETERS
//.DD. AMP =(TRACE=[HOOK=(n,n, ..)], // [ECODE=ANY CODEnumber] // [KEY=keydata low RBA - high RBA ], // [PARM1=trace options], // [PARM2=trace options]))

//MYJOB //STEP1 //KSDS01 // //


: : : :

JOB.. EXEX PGM=MYPROG DD DSN=VSAM.DATA.SET,DISP=OLD AMP=(TRACE=(PARM1=F00203000010, ECODE=ANY, HOOK=(1, 5), KEY=ADCDEF,PARM=F123456789AB))

TOPIC 14 : Local and Global Shared Resources


Topic objectives

Terminal objectives :
After attending this topic the student should know to conserve virtual storage buffers and selected control blocks.

Enabling objectives::
Upon completion of this topic the student should be able to :

* Discuss the concept of shared resource pools. * State the advantages of using LSR and GSR. * Describe selected macros to control allocation and use of shared resources.

LOCAL AND GLOBAL SHARED RESOURCES

DEFINITIONS: NSR, LSR, GSR


CREATING AND DELETING BUFFER POOLS

MANAGING I / O BUFFERS
CICS AND IMS REPORTS

RECOMMENDATIONS

NONSHARED vs. SHARED RESOURCES


INDIVIDUAL BUFFERS A.B C.D B.C D.E C.D
A.B D.E

BUFFER POOL

A.B

B.C

D.E

= 2K CI

=1K CI

LOCAL AND GLOBAL RESOURCES


MVS GSR

CICS

IMS

DB2

BATCH JOB

BATCH JOB

JES

LSR

LSR

LSR

LSR

LSR

LSR

RESOURCE POLLS

LSR

LSR
1 POOL FOR

1 - 16 FOR DATA

1 - 16 FOR INDEX

DATA & INDEX

BUILDING A RESOURCE POOL

BLDVRP MACRO :

EACH RESOURCE POOL BUILT INDIVIDUALLY DATA POOL MUST BE BUILT BEFORE INDEX POOL

BUILT BEFORE DATA SET IS OPENED

BLDVRP EXAMPLES EXAMPLE 1: EXAMPLE 2:


POOL1 BLDVRP BUFFERS=(2048(4)) TYPE=(LSR,DATA) SHRPOOL=3, STRNO=2, RMPODE31=ALL LTR R15,R15 BNZ ERROR BLDVRP BUFFERS=(1024(5)) TYPE=(LSR,INDEX) SHRPOOL=3, STRNO=2, RMODE31=ALL

POOL1 BLDVRP BUFFERS=1024(5)) STRNO=4, KEYLEN=32, TYPE=LSR, MODE=31, RMODE31=ALL

* POOL2

CONNECTING A DATA SET TO A RESOURCE POOL


LSR POOL

//VSAM1 DD DSN=..

PROGRAM:
BLDVRP : OPEN ACB1 ACB1 ACB MACRF =(LSR,) DDNAME=VSAM1

DATA SET

ADDRESS SPACE

DELETING A RESOURCE POOL

DELPOOL DLVRP

TYPE = LSR, MODE = 31, SHRPOOL = 1

MANAGING I / O BUFFERS

DEFERRING WRITES

WRITING MODIFIED BUFFERS

LOCATING BUFFE5RS CONTAINING SPECIFIED CI s

MARKING A BUFFER TO BE WRITTEN

DEFERRING WRITES ACB1 MACRF = (LSR, DFR, ..).

DEFER PUT REQUESTS UNTIL : * WRTBFR IS ISSUED * VSAM NEEDS BUFFER SPACE * DATA SET IS CLOSED

WRITING BUFFERS

WRTBFR MACRO WRITES :

MODIFIED BUFFERS IN THE RESOURCE POOL MODIFIED BUFFERS FOR A GIVEN DATA SET THE LEAST RECENTLY USED MODIFIED BUFFERS BUFFERS MODIFIED BY REQUESTS WITH SAME TRANSACTION ID

A MODIFIED BUFFER, IDENTIFIED BY RBA

MARKING A BUFFER

FIND / MODIFY DATA:


GET GET FOR UPDATE SCHBFR MACRO LOCATE MODE

* MRKBFR MARK = OUT MARKS BUFFER FOR OUTPUT * PROGRAM MODIFIES BUFFER CONTENTS * MRKBFR MARK = RLS
TO RELEASE EXCLUSIVE CONTROL

IMS AND VSAM RESOURCE POOLS

* IMS DL / I USES VSAM SHARED RESOURCE


* MANAGES BUFFERS AUTOMATICALLY

* MAINTAINS SUBPOOL STATISTICS BLOCK - FOR EACH SUBPOOL - BUFFERING SERVICES AND REQUEST ACTIVITY

IMS BUFFER POOL REPORT


IMS MONITOR **BUFFER POOL STATISTICS** TRACE START 1987 107 18:37:35 TRACE STOP 1987 107 18:38:41 PAGE 0007 VSAM B UF FE R POO L SUBPOOL ID :1 SUBPOOL BUFFER SIZE : 8192 TOTAL BUFFERS IN SUBPOOL : 10 18:37:35 18:38:40 STARTTRACE ENDTRACE DIFFERENCE 0 34382 34382 0 4431 4431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 40 2800 226 7 15063 495 14496 6080 649 345 0 0 40 2800 226 7 15063 495 14496 6080 649 345 0 0

NUMBER OF RETRIEVE BY RBA CALLS NUMBER OF RETRIEVE BY KEY CALLS NUMBER OF LOGICAL RECORDS INSERTED INTI ESDS

NUMBER OF LOGICAL RECORDS INSERTED INTO KSDS NUMBER OF LOGICAL RECORDS ALTERED IN THIS SUBPOOL NUMBER OF TIMES BACKGROUND WRITE FUNCTION INVOKED NUMBER OF SYNCHRONIZATION CALLS RECEIVED NUMBER OF VSAM GET CALLS ISSUED NUMBER OF VSAM SCHBFR CALLS ISSUED NUMBER OF TIMES CONT INT REQUESTED ALREADY IN POOL NUMBER OF CONTR INT READ FROM EXTERNAL STORAGE NUMBER OF VSAM WRITES INITIATED BY IMS/VS NUMBER OF VSAM WRITES TO MAKE SPACE IN THE POOL NUMBER OF PERM WRT ERROR BUFFS NOW IN SUB POOL LARGEST NUMS OF PERM ERR BUFFS EVER IN THE SUBPOOL

CICS USES SHARED RESOURCES

CICS USES LSR OR NSR AS SPECIFIED FOR EACH FILE DEFINED IN THE FCT

KEEPS STATISTICS ABOUT VSAM SHARED RESOURCES PRINTED AT SHUTDOWN

LSR DEFAULT FOR ALL FILES IN CICS RELEASE 1.7

SPECIFYING LSR WITH CICS

} } }

1K

* LSR SPECIFICATIONS VIA SHRCTL MACRO * IF NO SHRCTL CODED, THEN CICS CALCULATES REQUIREMENTS * MONITOR LSR SHUTDOWN STATISTICS

2K

3K

SHRCTL BUFFERS =1024 (24) 2048 (8) 4096 (6) KEYLENGTH = MAX KEYLENGTH OF FILES USING POOL STRNO = MAX STRINGS AVAILABLE FOR POOL

CICS SHARED RESOURCES STATISTICS


*******************VSAM SHARED RESOURCES STATISTICS*********
LOCAL SHARED RESOURCE POOL NUMBER : 1 LSR POOL CREATED : 03:22:23 MAXIMUM KEY LENGTH 13 TOTAL NUMBER OF STRINGS 12 HIGHEST NO. OF REQUESTS WAITED FOR STRING 3 TOTAL NO. OF REQUESTS WAITED FOR STRINGS 47 MAX.NO.CONCUR. ACTIVE FILE CONT. STRINGS 12 NUMBER NO.OF NUMBER OF USER BUFFER OF SUCCESSFUL BUFFER INITIATED SIZE BUFFERS LOOK-ASIDES READS BUFFER WRITES 512 8 21,159 6,850 61 2,048 8 3,434 1,155 473 4,096 11 14,900 4,444 2,395 16,384 6 4,038 7,525 6,547 TOTALS 43,531 19,974 9,476 DATA FILE BUFFER NAME SIZE ACCUNTDB 4096 CUSTOMER 4096 DATAENDB 4096 INVENTOR 16384 PARTS 16384 TABLEDB 2048 TRMNALDB 2048 VENDOR 16384 INDEX BUFFER SIZE 4096 4096 4096 512 512 2048 2048 512

NON-USER INITIATED BUFFER WRITES 0 0 0 0 0 TOTAL NO. OF TIMES REQUESTS HAD TO WAIT FOR BUFFER 0 0 0 2 9 0 0 5

HIGHEST NO. OF REQUESTS WAITING A BUFFER AT ANY ONE TIME 0 0 0 1 1 0 0 1

* * * * * * * * ** * * * * * * * * *** * * * * * * * * * * * * * * * * * * * * * *

LSR vs. NSR


LSR ADVANTAGES
* MORE EFFICIENT USE OF VIRTUAL STORAGE * BETTER PERFORMANCE WITH FULL BUFFER LOOK-ASIDE * SELF-TUNING (ACTIVE FILES GET ADDITIONAL BUFFERS) * INCREASED READ INTEGRITY (WITH BUFFER LOOK-ASIDE)

NSR ADVANTAGES

* ALLOWS SPECIFIC DATA SET TUNING


* BETTER PERFORMANCE FOR SEQ PROCESSING * BETTER PERFORMANCE DURING CA SPLITS

USER LSR FOR ALL FILES EXCEPT : - HIGH ACTIVITY FILES - HIGH PERFORMANCE FILES (ALLOCATE ADDITIONAL INDEX BUFFERS) - FAST SEQUENTIAL BROWSE OR MASS INSERTS - CA SPLITS EXPECTED

TOPIC 15 : Linear Data Sets


Topic objectives Terminal objective: After attending this topic the student should know the structure and advantage of using DIV. Enabling objectives : Upon completion of this topic the student should be able to : Describe the structure and advantage of using a linear data set.

Describe how data is stored in a linear data set.


Discuss the use of the DIV macro to access data in a linear data set.

LINEAR DATA SET


KSDS LDS

CI CI CI CI CI CI CI CI

LR LR LR LR LR

LR LR LR LR LR

LR LR LR LR LR

LR LR LR LR LR

LR LR LR LR LR LR LR LR

CI CI CI CI CI CI CI CI

LOGICAL RECORDS

TABLE / ARRAY

REDUCING I / O : AN OPTION With MVS / XA or MVS / ESA


Read ENTIRE file into virtual storage
+ MOVE ABOVE 16meg LINE

Process data
+ PAGE FAULTS

Write ENTIRE file to DASD

REDUCING I /O : DIV PROCESSING With Data in Virtual

Tell system the datas location

Process data

+ PAGE FAULTS

Write CHANGED 4K blocks to DASD

DIV EXAMPLE
DATA OBJECT

ONLY READ REFERENCED VIRTUAL PAGES

STORAGE

ONLY WRITE UPDATED PAGES

DATA IN VIRTUAL FUNCTIONS

IDENTIFY ACCESS MAP SAVE RESET UNMAP UNACCESS UNIDENTITY

Give DDNAME Open Data set READ file Write updates Discard changes Remove MAP Remove ACCESS Remove IDENTITY

IDENTITY
// EXEC PGM=DIVTEST //DIVDS DD DISP=SHR,DSN=DIV.DATA : : DIV IDENTITY, TYPE=DA, DDNAME=DIVDDN, ID=TOKEN : : DIVDDN DC X5,DIVDS TOKEN DS D : : :

IDENTIFY DDNAME pointing to LDS Data set IDed via DDNAME DDNAME of LDS Returned token of Data Object (LDS)

ACCESS

: : DIV ACCESS, ID=TOKEN, MODE=UPDATE, SIZE =OBJSZ : : TOKEN DS D OBJSZ DS F : :

Indicates Read-only or Update intent Token from IDENTITY READ or UPDATE Object size (4K units)

Set by IDENTIFY Set by ACCESS

MAP

: : DIV MAP, ID = TOKEN, AREA = ARRAYPT : : TOKEN DS D ARRAYPT DC A(ARRAY) : :

Specifies virtual storage to hold Data Object contents Token from IDENTITY
Word having area address

set by IDENTITY

MAP EXAMPLE
0, 0 DATA OBJECT AREA

0, 0

m, n

m, n

SAVE and RESET EXAMPLE DASD


Program changes MAPped data, then

MAP

DIV

SAVE,..

More changes, then

DIV RESET, ...

SAVE AND RESET


: : DIV SAVE, ID=TOKEN, SIZE =OBJSZ : : TOKEN DS D OBJSZ DS F : : Update changed pages on DASD Token from IDENTIFY New size (4K units)

Set by IDENTIFY Set by SAVE

: DIV RESET, ID = TOKEN :

Eliminate changes to MAPped area Token from IDENTIFY

UNMAP , UNACCESS , UNIDENTITY

: DIV UNMAP, ID = TOKEN , AREA = ARRAYPT : DIV UNACCESS, ID = TOKEN : DIV UNIDENTITY, ID = TOKEN : TOKEN DS D ARRAYPT DC A(ARRAY) : :

Eliminates a map(no DASD update) Token from IDENTIFY Word having address of area passed to MAP Cancels the ACCESS (OPEN) - Implied UNMAP

Cancels the IDENTIFY - Implied UNACCESS

Set by IDENTIFY

DIV CANDIDATES

APPLICATIONS USING SETS OF FIXED - LENGTH DATA STRUCTURES FORTRAN APPLICATIONS POSSIBILITIES : - LARGE ARRAYS - VSAM RRDS - BDAM FIXED - LENGTH RECORDS

TOPIC 16 : Data Windowing Services


Topic objectives Terminal objectives : After attending this topic the student should know the fecilities to use the MVS callable services to use linear data sets in programs, written in high level languages.

Enabling objectives::
Upon completion of this topic the student should be able to : * Use the Data Windowing Services in order to process VSAM objects with Data In Virtual techniques.

DATA WINDOWING SERVICES - Overview

COBOL FORTRAN PASCAL PL / I

CALL

DWS

PERMANENT OBJECTS ( UPTO 4 GB) TEMPORARY OBJECTS (UPTO 16 TB)

MAPPING PERMANENT OBJECT - 1


without a SCROLL AREA
address space permanent object on DASD

1st block 2nd block 1st block 3rd block 2nd block

Last Block

MAPPING PERMANENT OBJECT - 2


with a SCROLL AREA
scroll area
address space

1st block 2nd block 1st block

permanent object on DASD

3rd block
2nd block etc. etc.

DIV object

last block

MAPPING TEMPORARY OBJECT


temporary object 1st block 2nd block 1st block

address space

3rd block
2nd block etc.

etc.

last block

Access to Permanent Object View object through one of more windows

Change data that appears in window

Save interim changes in scroll area

Refresh view in window

Update object on DASD

A ccess Temporary Object

View object through one of more windows

Change data that appears in window

Update the temporary object

Refresh window or object

Change the view in window

The CALLABLE SERVICES

CSRIDAC CSRREFR CALL CSRSAVE CSRSCOT CSRVIEW parameters

CSRIDAC service

CALL CSRIDC

(operation_type ,object_type ,object_name ,scroll_area ,object_state ,access_mode ,object_size ,object_id ,high_offset ,return_code ,reason_code)

Potrebbero piacerti anche