VSAM- Basic Concepts -V2.0

Embed Size (px)

DESCRIPTION

VSAM- Basic Concepts

Citation preview

  • 1z/OS VSAM Concepts

  • 2Sessions Outline - Day 3 Session 1 : Introduction to VSAM

    Session 2 : Structure of VSAM Datasets

    Session 3 : Access Method Services

    Session 4 : Demo/Exercise Discussion

  • 3Objectives

    Familiarization with

    VSAM concepts

    Space Allocation and types of data sets supported by VSAM

    VSAM Characteristics

    Identify the general uses for Access Method Services

  • 4Introduction to VSAM (Virtual Storage Access Method)

    Session 1

  • 5Topics Covered VSAM Basics

    VSAM Dataset Organization

  • 6What is VSAM? VSAM is a high-performance access method used in OS/390, MVS/ESA

    and z/OS operating systems

    Used as a Dataset in conjunction with programming languages (COBOL or PL/I) to create Applications

    Used by CICS to store and retrieve data

    Not a database management system does not provide a relationship among data (such as DB2 or IMS)

  • 7VSAM Characteristics VSAM supports three types of data access: Sequential, Random (also

    called Direct access) and Skip Sequential

    Protection of data against unauthorized access is an inherent part of VSAM

    Easily portable to AS/400, the PC or non-IBM computers (cross system compatibility)

    A format for storing data independently of the type of direct access storage device on which it is stored

  • 8VSAM Characteristics (Contd.) Options for optimizing performance

    A multifunction service program (Access Method Services - IDCAMS) for setting up catalog records and maintaining data sets

    Transactional VSAM - allows VSAM data set sharing in batch/online and batch/batch environments

  • 9VSAM Dataset Organizations

    ESDS Entry Sequenced Data Set

    KSDS Key Sequenced Data Set

    RRDS (Fixed Length) Relative Record Data Set

    VRRDS Variable Length Relative Record Data Set

    LDS Linear Data Set

  • 10

    NON-VSAM Access Methods

    BSAM : Basic Sequential Access Method

    QSAM : Queued Sequential Access Method

    ISAM : Indexed Sequential Access Method

    BDAM : Basic Direct Access Method

  • 11

    Similarities between VSAM & NON-VSAM Datasets

    VSAM type Similar to

    KSDS ISAM

    ESDS BSAM/QSAM

    RRDS BDAM

  • 12

    VSAM Dataset Organization

  • 13

    Topics Covered VSAM Catalog Structure

    VSAM Terminology

    VSAM Record Storage Control Intervals and Control Areas

  • 14

    VSAM Terminology

    Catalog Management

    Logical Record

    Key Field

    Physical Record

    Cluster

    Sphere

    Index component

    Record management

    Data component

    Master/User Catalog

    Data Space

    Control Interval and Control Area

    Alternate Indexes

    Spanned Records

  • 15

    Catalog Management

    VSAM maintains extensive information about data sets and direct access

    storage space in an integrated catalog facility (ICF) catalog.

    The catalogs collection of information about a data set defines that data

    sets characteristics. All VSAM files

    must be defined in an ICF catalog.

  • 16

    Record Management

    The record management part of VSAM contains the access method code.

  • 17

    Logical record

    Unit of information used to store data in a VSAM data set.

    Set of bytes containing a logical description of an item processed

    by an application program.

    A logical record can be of a fixed size or a variable size depending on the

    business requirements.

  • 18

    Key field

    Identifies the item associated with the logical record.

    Important Field whose contents can be used to retrieve the specific logical

    record

  • 19

    Physical record

    The data is usually a set of logical records (packed together) transferred from or to memory by just one Read or Write CCW. The access method uses the BLKSIZE parameter to determine the length of the physical record. A large block size results in fewer gaps in the track but larger buffer in memory to keep the data.

    A physical record is device dependent, its size is calculated at the time the data set is defined.

    All physical records have the same length.

  • 20

    Cluster

    Collection of physical datasets that make up one logical data set.

    Consists of Data Component or Data Component & Index Component

  • 21

    Sphere A sphere is a base VSAM cluster and its associated clusters.

    These associated clusters are the alternate indexes (AIXs) of the base cluster.

  • 22

    Data and Index Component

    A component is an individual part of a VSAM data set. Each component has a name, an entry in the catalog and an entry in the VTOC.

    The KSDS and VRRDS organizations have data and index components. ESDS, RRDS and LDS organizations only have data components.

    The data component is the part of a VSAM data set, alternate index, or catalog that contains the data records.

    Using the Index component VSAM is able to randomly retrieve a record from the data component when a request is made for a record with a certain key. The key determines the records position in the data set.

  • 23

    Control Interval and Control Area It is the fundamental building block of every VSAM file.A CI is a contiguous

    area of direct access storage that VSAM uses to store data records and control information that describes the records.

    A CI is the unit of information that VSAM transfers between the storage device and the process or during one I/O operation. Whenever a record is retrieved from direct access storage, the entire CI containing the record is read into a VSAM I/O buffer in virtual storage. The desired record is transferred from the VSAM buffer to a user-defined buffer or work area.

    A CA is formed by two or more CIs put together into fixed-length contiguous areas of direct access storage. A VSAM data set is composed of one or more CAs. CAs are needed to implement the concept of splits. The size of a VSAM file is always a multiple of its CA. VSAM files are extended in units of CAs. A spanned record cannot be larger than a CA.

  • 24

    Alternate Indexes

    Alternate indexes (AIXs) allows logical records of a KSDS or of an ESDS to

    be accessed sequentially and directly by more than one key field.

    AIXs eliminate the need to store the same data in different sequences in

    multiple data sets for the purposes of various applications. Each alternate

    index is a KSDS cluster consisting of an index component and a data

    component.

  • 25

    Spanned Records Spanned records are needed when the application requires very long logical

    records. A spanned record may be the data component of an AIX cluster. If spanned records are used for KSDS, the primary key must be within the first control interval.

    Spanned records are logical records that are larger than the CI size. To have spanned records, the file must be defined with the SPANNED attribute at the time it is created. Spanned records are allowed to extend across or span control interval boundaries.

    A spanned record must always begin on a control interval boundary and fills one or more control intervals within a single control area. A spanned record cannot share the CI with any other records.

  • 26

    Control Intervals and Control Areas

  • 27

    Control Interval VSAM Basic unit of work the minimum amount of data that is transferred

    via buffers, between DASD and Main Memory

    VSAM determines the size of the physical Record (BLOCK) based on CI Size

    The CI size can be from 512 byes to 32 KB

  • 28

    Control Interval & Control Area CA is a fixed length area of auxiliary storage space in which VSAM stores

    records

    Logical records of a VSAM dataset are grouped into a number of CIs.

    CIs of a dataset are grouped into one or more CAs

    The size of a VSAM file is always a multiple of its CA

  • 29

    General format of a Control Interval

  • 30

    Format of Data Control Interval

    Record1 Record2 Record3 Free Space (FSPC)

    Logical Record Area (LRA)Unused Space

    Control Information Field

    CISZ

    US CIF

  • 31

    Control Information Field of a CICIF consists of two subfields: Control Information Definition Field (CIDF)

    It is a 4 byte field Contains the Offset and Amount of Free space

    Record Definition Field (RDF) It is a 3-byte field. Length of records (based on the spread of data) Number of adjacent records that are of same length

  • 32

    Control Information Fields in a CI

    Record Type Number of Records/CI Control Information (bytes)

    Fixed Length Multiple 10

    Fixed Length 1 7

    Variable Length Depends on the spread of records

    4 (CIDF) and 3 (RDF)

  • 33

    CISZ (CI Size) an example How many 80 byte Fixed Length recs can be fit in a CISZ(4096) of

    Freespace(20,10) ?

    Solution:

    40 records of 80 byte record lengthSpace utilized = 40*80 = 3200 bytes US67 bytes

    CIF10 bytes

    FSPC(4096*0.20) 819 bytes

    Unused space = 4096 3200 819 10 = 67

    Logical Record Area (LRA)

  • 34

    Inserting a record in a CI

    11111

    Before Inserting:

    US CIF

    New Record with key 44444

    22222 55555 (FSPC)

    After Inserting:

    US CIF11111 22222 44444 55555 (FSPC)

    New record

  • 35

    Control Interval Split

    Before CI Split:New Record with key 33333

    11111 US CIF

    US CIF(FSPC)

    CI-1

    CI-2

    22222 44444 55555 66666

    After CI Split:

    US CIF

    US CIF

    CI-1

    CI-2

    11111 22222 33333

    44444 55555 66666

    (FSPC)

    (FSPC)

  • 36

    Format of Index Control Interval

    Header Entry1 Entry2 Entryn

    Control Information Field

    KSDS Control Interval

    CIF

  • 37

    Structure of VSAM Datasets

    Session 2

  • 38

    Topics Covered Types of VSAM Datasets

    More on KSDS Index Structure

  • 39

    Objective

    Understand the types and internal organization of VSAM datasets

    Identify appropriate applications for VSAM data sets

    Understand KSDS Index Search Techniques

  • 40

    Types of VSAM Datasets

  • 41

    VSAM Datasets Types

    Entry Sequenced Data Set (ESDS)

    Relative Record Data Set (RRDS)

    Key Sequenced Data Set (KSDS)

    Variable Length Relative Record Data Set (VRRDS)

    Linear Data Set (LDS)

  • 42

    ESDS CA Structure

  • 43

    COBOL example ESDS data set

    SELECT ASSIGN TO ORGANIZATION IS SEQUENTIALACCESS MODE IS SEQUENTIALFILE STATUS IS STATUS-KEY

  • 44

    RRDS Structure

  • 45

    COBOL example - Sequential Retrieval

    SELECT ASSIGN TO ORGANIZATION IS RELATIVEACCESS IS SEQUENTIALRELATIVE KEY IS RR-NUMBER

  • 46

    COBOL example - Direct Retrieval

    SELECT ASSIGN TO ORGANIZATION IS RELATIVEACCESS IS RANDOMRELATIVE KEY IS RR-NUMBER.

  • 47

    KSDS Structure

  • 48

    COBOL example - Sequential Retrieval

    SELECT ASSIGN TO ORGANIZATION IS INDEXEDACCESS IS SEQUENTIALRECORD-KEY IS EMP-NUMFILE-STATUS IS STATUS-KEY.

  • 49

    COBOL example - Direct Retrieval

    SELECT ASSIGN TO ORGANIZATION IS INDEXEDACCESS IS RANDOMRECORD-KEY IS EMP-NUMFILE-STATUS IS STATUS-KEY.

  • 50

    LDS Structure

  • 51

    Comparison of VSAM DS

  • 52

    Comparison of VSAM DS (Contd.)

  • 53

    More on KSDS Index Structure

  • 54

    KSDS Structure

  • 55

    General Format of Index Set

  • 56

    General format of Sequence Set

  • 57

    Index Search Techniques

    Horizontal Search

    For a Sequential Search, search is performed with the key value less than or equal to the sequence set record

    Vertical Search

    For a Random Access, search is performed from the Index set

    Once the key

  • 58

    Example-1How Index & Sequence Sets work

  • 59

    Example-2Data Component Structure

    Data Records

  • 60

    Example-2 (Contd.) Data Component Structure

    Index Set Record

  • 61

    Share option in VSAM

    Share option in VSAM is defined as Concurrent Usage of Dataset by several People at the same time. We can use this option for sharing the files in the same region and in other system. The SHAREOPTION has two parameters, the inter-system parameter and intra-system parameter.

    Syntax:SHAREOPTIONS(crossregion,crossystem)

  • 62

    Share option cont:.... If the source data set is allocated with DISP=SHR, there is a risk that it could be updated by a region other than the FOR. If this happened, the data table would no longer match the source data set. To minimize this risk, the VSAM cross-region SHAREOPTION should be set to 1 or 2. 1 means that either one region can have update access to the data set or many regions can have read-only access. 2 means that one region can have update access to the data set and, at the same time, many regions can have read-only access.

    Regardless of the setting of DISP, a warning message is issued if the cross-region SHAREOPTION is 3 or 4, or if it is 2 but the CICS-maintained data table has read-only access (which means another region might be able to update the data set).

  • 63

    Syntax and attributes

  • 64

    Access Method Services

    Session 3

  • 65

    Topics Covered

    Introduction to IDCAMS

    IDCAMS Commands

    Define and Load a VSAM dataset

    VSAM Advanced Topics

  • 66

    Objectives

    Use Access Method Services (AMS )

    Identify some useful AMS Commands

    Define and Load a Basic Cluster with IDCAMS

    Define and Build Alternate Index

  • 67

    Introduction to IDCAMS

  • 68

    IDCAMS Utility

    Multifunction utility program supplied with VSAM (IDCAMS) to manage

    and maintain datasets

  • 69

    IDCAMS Features

    IDCAMS can be used to Define, Alter and Delete datasets and allocate space for them List and Maintain VSAM Catalogs Load, Print and Copy datasets Reorganize datasets Define and build alternate indexes Facilitate backup and recovery Provide security and integrity functions

  • 70

    Invoking IDCAMS

    //YOURJOB JOB (ACCT),'IDCAMS JOB',//STEP1 EXEC PGM=IDCAMS//SYSPRINT DD SYSOUT=*//SYSIN DD *AMS commands and their parameters/*

    1. As a Job or Job step Example

  • 71

    Invoking IDCAMS (Contd.)2. TSO can be used with VSAM and access method services to

    Execute access method services commands Execute a program to call access method services

    3. From an application Program

  • 72

    IDCAMS Commands

  • 73

    COMMANDS

    Modal Commands Used to control execution and establish options Modal commands allow the conditional execution of functional

    commands.

    Functional Commands Used to invoke access method services

  • 74

    COMMANDS (Contd..1)

    COMMAND specifies the type of service requested

    Default statement margins are positions 2 through 72.

    Command stmt can be continued to the next line with - as the last parameter

    Comment may be embedded in Command statements between /* and */

  • 75

    COMMANDS (Contd..2)

  • 76

    Condition Codes

    IDCAMS returns a condition code following the execution of each Command

    Can be used to selectively execute or skip subsequent commands

    Initialized to zero at the start of the execution

  • 77

    Condition Codes (Contd..1)

    LASTCC - specifies the condition code value that resulted from the immediately preceding function command

    MAXCC - specifies the maximum condition code value that has been established by any previous function command

  • 78

    Condition Codes (Contd..2)

    Code Explanation 0 Function executed successfully

    4 Some problem was met in executing the function but it waspossible to continue. The continuation might not provideexact results, but no permanent harm will have been done

  • 79

    Condition Codes (Contd..3)Code Explanation8 A requested function was completed but major specifications

    were unavoidably bypassed

    12 The requested function could not be performed, as a result of a logical error

    16 A severe error occurred that caused the Job Step to terminate

  • 80

    Modal Commands

    IF-THEN-ELSE :

    Used to control command execution on the basis of condition codes

    DO-END :

    Used to specify the group of commands as a single unit

  • 81

    Modal Commands (Contd.)NULL : Used to indicate that no action is to be taken

    PARM : Specifies processing options to be used during execution

    SET : Used to change or reset a previously defined condition code

  • 82

    Modal Commands - Syntax

    IF {LASTCC|MAXCC} {operator} {numeric value}THEN {command }

    DO{command set}

    ENDELSE {command}

    DO{command set}

    END

  • 83

    Functional Commands

    DEFINE Used to define the following objects Alias Alternate index Cluster Dataspace User Catalog and Master Catalog Path Catalog entry for a Generation Data Group Catalog entry for a non-VSAM dataset

  • 84

    Functional Commands (Contd..1) DELETE Used to delete catalogs, VSAM and non-VSAM datasets

    EXAMINE Analyzes and reports on the structural consistency of the index component and/or data component of KSDS cluster

    LISTCAT Used to list catalog entries

  • 85

    Functional Commands (Contd..2)

    IMPORT Connects user catalogs and imports VSAM datasets

    EXPORT Disconnects user catalogs and exports VSAM datasets.

    PRINT Used to print VSAM and non-VSAM datasets and catalogs

  • 86

    Functional Commands (Contd..3)

    ALTER - Used to alter attributes of datasets and catalog that have already been defined

    Alter

    Freespace

    Volume

    Prevent temporary updates to a VSAM dataset

  • 87

    Functional Commands (Contd..4)

    BLDINDEX - Builds alternate indexes for existing datasets

    Keys will be actually built from the base cluster with the BLDINDEX command

    VERIFY : Used to cause a catalog to correctly reflect the end of a dataset after an error occurred in closing a VSAM dataset. The error may have caused the catalog to be incorrect.

  • 88

    Functional Commands (Contd..5)

    REPRO

    Loads an empty VSAM cluster with records

    Creates backup of a VSAM dataset on a sequential dataset and restores the

    dataset

    Merges data from two VSAM datasets

  • 89

    Example: Modal & Functional Commands//JOBNAME JOB ...//STEP1 EXEC PGM=IDCAMS//SYSPRINT DD SYSOUT=*//SYSIN DD *DEFINE CLUSTER -IF LASTCC = 0 THEN -REPRO -ELSE -DOSET LASTCC = 0DELETE CLUSTER ...DEFINE CLUSTER ...END/*

  • 90

    Define and Load a VSAM Dataset

  • 91

    DEFINE CLUSTER The DEFINE CLUSTER command can be used to define a cluster and

    specify attributes for the cluster as a whole and for the components of the cluster. The general format is :

  • 92

    DEFINE CLUSTER example//JOB1 JOB CLASS=A//DEFINE EXEC PGM=IDCAMS//SYSPRINT DD SYSOUT=*//SYSIN DD *DEFINE CLUSTER -(NAME(TRGXXX.MAST.CLUSTER) -TRACKS(51) -CONTROLINTERVALSIZE(4096) -INDEXED -VOLUMES(TRG001) KEYS(6,0) -FREESPACE(10,10) -DATA -(NAME(TRGXXX.MASTER.DATA) -TRACKS(21) -RECORDSIZE(200 200)) -INDEX -(NAME(TRGXXX.MASTER.INDEX) -IMBED)./*

  • 93

    LISTCAT

    The LISTCAT command lists catalog entries.

    Freespace, CI/CA split, Data Attributes, Statistics. Allocation information

    All parameters of the LISTCAT command are optional

    LISTCAT can be used under TSO

  • 94

    LISTCAT Syntax

    LISTCAT ALIAS | ALTERNATEINDEX |

    CLUSTER | NONVSAM | PATH | ENTRIES(entryname/password entryname/password..) |

    LEVEL(level)

    EXPIRATION(days)

    NAME | HISTORY | VOLUME|

    ALLOCATION | ALL

    OUTFILE(ddname)

  • 95

    LISTCAT example//JOBTRGXX ...//LISTCAT1 EXEC PGM=IDCAMS//SYSPRINT DD SYSOUT=A//SYSIN DD *LISTCAT -ENTRIES(TRGXXX.MAST.CLUSTER) -CLUSTER -ALL/*

  • 96

    REPRO The REPRO command copies VSAM and non-VSAM data sets, copies

    catalogs.

  • 97

    REPRO SyntaxREPRO {INFILE(ddname)/password INDATASET(entryname)/password {OUTFILLE(ddname/passwordOUTDATASET(entryname/password}( CHARACTER | DUMP | HEX )( FROMKEY(key) | ( FROMADDRESS(address) |( FROMNUMBER(number) )SKIP(number) ( TOKEY(key) |TOADDRESS(address) |TONUMBER(number) )COUNT(Number)

  • 98

    REPRO example

    //JOBTRGXX ...//STEP1 EXEC PGM=IDCAMS//INPUTDD DD DSN=TRGXXX.DATA.RECORDS,DISP=OLD//SYSPRINT DD SYSOUT=A//SYSIN DD *REPRO -INFILE(INPUTDD) -OUTDATASET(TRGXXX.KSDS.CLUSTER)/*

    Example: Load VSAM KSDS from Non-VSAM dataset and copy selected records to an ESDS

  • 99

    DELETE The DELETE command deletes catalogs, VSAM datasets, non-VSAM

    datasets and objects.

  • 100

    DELETE Command Syntax

    DELETE (entryname/password entryname/password..)ALIAS | ALTERNATEINDEX | CLUSTER | NONVSAM |PATH | USERCATALOG ERASE | NOERASEPURGE| NOPURGEFORCE | NOFORCE

  • 101

    DELETE example

    //DELMAST EXEC PGM=IDCAMS//SYSPRINT DD SYSOUT=A//SYSIN DD *DELETE -(TRGXXX.MAST.CLUSTER -TRGXXX.TEST.DATA) -FILE(DD1) -PURGE -ERASE/*

  • 102

    PRINT

    PRINT: The PRINT command prints VSAM datasets, non-VSAM datasets, and catalogs. The syntax is:

  • 103

    PRINT SyntaxPRINT {INFILE(ddname /password )INDATASET(entryname /password ) }CHARACTER| DUMP | HEXFROMKEY(key) | FROMADDRESS(address) | FROMNUMBER(number) }SKIP(number) OUTFILE(ddname) TOKEY(key) |TOADDRESS(address) |TONUMBER(number)|COUNT(Number)

  • 104

    PRINT example//JOBTRGXX ...//DEFAIX EXEC PGM=IDCAMS//SYSPRINT DD SYSOUT=A//SYSIN DD *PRINT -INDATASET(TRGXXX.MAST.CLUSTER) -FROMKEY(E00001) -COUNT(100)/*

  • 105

    VERIFY The VERIFY command causes a catalog to correctly reflect the end of a

    VSAM data set after an error occurs while closing a VSAM data set

    The syntax is:VERIFY {FILE(ddname/password) |DATASET(entryname/password)}

  • 106

    VERIFY ExampleExample of a typical VERIFY usage Job TRGJJJJ has terminated abnormally and VSAM dataset

    TRGXXX.MAST.CLUSTER is not closed correctly. This job is followed by another job that uses this file for an IDCAMS copy. Following are the set of return codes that will appear in the Job Spool

    In JESMSGLG the error will beIEC161I 056-084,TRGGXXXX,JS010,IFILE01,,,

    In SYSPRINT of the step failed the error will beIDC3300I ERROR OPENING TRGXX.MAST.CLUSTERIDC3351I ** VSAM OPEN RETURN CODE IS 118

    Solution: A VERIFY issued on VSAM file TRGXXX.MAST.CLUSTER will correct this error

  • 107

    VERIFY Example (Contd..)//JOBTRGXX ...//STEP1 EXEC PGM=IDCAMS//SYSPRINT DD SYSOUT=A//SYSIN DD *VERIFY -DATASET(TRGXXX.MAST.CLUSTER)/*

  • 108

    ALTERNATE INDEX Allows for a KSDS to be accessed in a different order other than the primary

    key

    Allows the creation of an index for a non-indexed object, such as an ESDS cluster

  • 109

    Steps to create an ALTINDX DEFINE command to create the alternate index

    BLDINDEX command to build the keys for the alternate index

    DEFINE command to create a PATH relating the alternate index to the base cluster

  • 110

    DEFINE ALTINDX example//JOBTRGXX ...//DEFINE EXEC PGM=IDCAMS//SYSPRINT DD SYSOUT=*//SYSIN DD *DEFINE AIX -(NAME(TRGXXX.MAST.TEMP.AIX) -VOLUMES(TRG001) -RELATED(TRGXXX.MAST.CLUSTER) -UPGRADE -TRACKS(21) -KEYS(24,8) RECORDSIZE(200 200) -FREESPACE(10,10) NONUNIQUEKEY -DATA -(NAME(TRGXXX.MAST.TEMP.AIX.DATA) -INDEX -(NAME(TRGXXX.MAST.TEMP.AIX.INDEX) -)/*

  • 111

    BLDINDX The BLDINDEX command builds alternate indexes for existing data sets

    Alternate Index can be built only after its base has been loaded with at least one record

  • 112

    BLDINDX example

    //JOBTRGXX ...//BLDINDEX EXEC PGM=IDCAMS//DD1 DD DSN=TRGXXX.TEMP.SEQ,DISP=SHR //DD2 DD DSN=TRGXXX.MAST.TEMP.AIX,DISP=SHR//IDCUT1 DD VOL=TEMPDA,UNIT=3380,DISP=OLD,AMP='AMORG//IDCUT2 DD VOL=TEMPDA,UNIT=3380,DISP=OLD,AMP='AMORG' //SYSPRINT DD SYSOUT=*//SYSIN DD *BLDINDEX INFILE(DD1) - OUTFILE(DD2) /*

  • 113

    DEFINE PATH After defining an alternative index, a PATH must be defined to access the

    data set. This forms the connection between the alternative index and the base cluster, and the connection is stored in the catalog

    When a program opens a path for processing, both the base cluster and the alternate index are opened

  • 114

    DEFINE PATH example

    //JOBTRGXX ...//BLDINDEX EXEC PGM=IDCAMS//SYSPRINT DD SYSOUT=*//SYSIN DD *DEFINE PATH ( - NAME(TRGXXX.MAST.TEMP.IX) - PATHENTRY(TRGXXX.MAST.TEMP.AIX) ) /*

  • 115

    GDG A group of chronologically or functionally related data sets are called

    Generation Data Group (GDG)

    Each data set within a GDG is called a Generation Data Set or simply a Generation

    They are processed periodically, often by adding a new generation, retaining previous generations, and sometimes discarding the oldest generation

    Each generation data set in the group will have the name as GDG name.GxxxxVyy, where xxxx is the generation number and yy is the version number

  • 116

    GDG (Contd..) GDGs can be referred in a JCL by means of an absolute name or relative

    name

    Absolute name is by coding the complete Generation name as GDGname.G0001V00

    Relative name is a signed integer used to refer to the latest (0), the next to the latest (1), and so forth, generation. The relative number can also be used to catalog a new generation (+1)

  • 117

    GDG Advantages The advantages of grouping related data sets are:

    All of the data sets in the group can be referred to by a common name

    The operating system is able to keep the generations in chronological order

    Outdated or obsolete generations can be automatically deleted by the operating system

  • 118

    GDG Usage One of the important usage of a GDG is for cataloging periodic backups of

    VSAM datasets Example, a GDG of limit 7 can be used to take backup of VSAM data

    sets from the batch job for all 7 days of the week The GDG base after data sets are cataloged will be as follows

    GDGname.G0001V00 GDGname.G0001V01 GDGname.G0001V06

    Another important usage of GDG is for cataloging periodic reports (weekly, monthly, etc). Example, a GDG with limit 12 can hold monthly reports for a year

  • 119

    GDG SyntaxDEFINE GENERATIONDATAGROUP

    (NAME(entryname) LIMIT(limit) [EMPTY | NOEMPTY] [SCRATCH | NOSCRATCH] [TO(date) | FOR(days)])

  • 120

    GDG example//JOBTRGXX ...//DEFGDG EXEC PGM=IDCAMS//SYSPRINT DD SYSOUT=A//SYSIN DD *DEFINE GENERATIONDATAGROUP (- NAME(TRGXXX.MAST.GDG) - LIMIT(5) - SCRATCH ) /*

  • 121

    VSAM Backup considerations

    //JOBTRGXX ...//LOADSTEP EXEC PGM=IDCAMS//SYSPRINT DD SYSOUT=A//DD1 DD DSN=TRGXXX.MAST.GDG(+1),// DISP=(NEW,CATLG,DEL),UNIT=TAPE,// VOL=TEMPAD,DCB=(RECFM=FB,LRECL=80)//SYSIN DD *REPRO -

    INDATASET(TRGXXX.MAST.CLUSTER) - OUTFILE(DD1) /*

  • 122

    Utility U.5 in ISPF

    A user interface is available under option U.5. This provides 2 options Access method services VSAM maintenance utility

  • 123

    U.5.1 OptionAccess method services (option u.5.1) provides interface for the following functions

    Define Cluster Define alternate index Define path Alter VSAM dataset characteristics Rename a dataset Copy/Load a VSAM dataset Delete a VSAM dataset Print a VSAM dataset Verify endfile markers

  • 124

    VSAM Advanced Topics

  • 125

    CICS VSAM Transparency for z/OS CICS VSAM Transparency for z/OS can help you unlock value in data used

    by your legacy applications and extend its use to new DB2 applications, online and e-business

  • 126

    VSAM to DB2 migration 24x7 availability

    Running adhoc queries

    Ability to perform data analysis (mgt reporting, analytics)

    Exploitation of database maintenance tools

    Integration with new applications based on DB2 technology

  • 127

    Other advanced topics in VSAM

    VSAM Extended Format & Extended Addressability

    Data striping

    Data compression

    Partial space release

    System-managed buffering (SMB)

    VSAM Record Level Sharing (RLS)

    Utilities: File-Aid, DITTO, STARTOOL

  • 128

    Discussion Topics

    What does an index component contain in KSDS ?

    How data is organized in Data Component ?

    What is the Index search technique for a Random process?

    Access Method Services, IDCAMS creates and maintains VSAM DS. State

    True / False

  • 129

    Discussion topics (Contd.)

    The number of extents that the VSAM can grow up to : a) 123 b) 251 c) 255

    d) none

    What is Alternate Index ?

    How is Alternate Index created ?

    How does the BLDINDX perform ?

    How is an LDS different from an ESDS?

  • 130

    Demo/Exercise

    Session 4

  • 131

    Demo

    Create a VSAM KSDS

    Load VSAM KSDS (Use Repro)

    Create an Alternate Index

    Build Index

    Define Path

    Do a LISTCAT on KSDS and explain the output

  • 132

    References MVS/VSAM for the Application Programmer Gary D.Brown & S.A.M.

    Smith

    VSAM Demystified Mary Lovelace et al. IBM Redbooks 2003 (Document Number SG24-6105-01) in IBMs Website

    DFSMS/MVS V1R2 Access Method Services for VSAM (Document Number SC26-4905-01) in IBMs Website

  • 133

    THANK YOU

    PowerPoint PresentationSessions Outline - Day 3ObjectivesIntroduction to VSAM (Virtual Storage Access Method)Topics CoveredWhat is VSAM?VSAM CharacteristicsVSAM Characteristics (Contd.)VSAM Dataset OrganizationsNON-VSAM Access MethodsSimilarities between VSAM & NON-VSAM DatasetsVSAM Dataset OrganizationSlide 13VSAM TerminologyCatalog ManagementRecord ManagementLogical recordKey fieldPhysical recordClusterSphereData and Index ComponentControl Interval and Control AreaAlternate IndexesSpanned RecordsControl Intervals and Control AreasControl Interval Control Interval & Control AreaGeneral format of a Control IntervalFormat of Data Control IntervalControl Information Field of a CIControl Information Fields in a CICISZ (CI Size) an exampleInserting a record in a CIControl Interval SplitFormat of Index Control IntervalStructure of VSAM DatasetsSlide 38ObjectiveTypes of VSAM DatasetsVSAM Datasets TypesESDS CA StructureCOBOL example ESDS data setRRDS StructureCOBOL example - Sequential RetrievalCOBOL example - Direct RetrievalKSDS StructureSlide 48Slide 49LDS StructureComparison of VSAM DSComparison of VSAM DS (Contd.)More on KSDS Index StructureSlide 54General Format of Index SetGeneral format of Sequence SetIndex Search TechniquesExample-1 How Index & Sequence Sets workExample-2 Data Component StructureExample-2 (Contd.) Data Component StructureShare option in VSAMShare option cont:....Syntax and attributesAccess Method ServicesSlide 65Slide 66Introduction to IDCAMSIDCAMS UtilityIDCAMS FeaturesInvoking IDCAMSInvoking IDCAMS (Contd.)IDCAMS CommandsCOMMANDSCOMMANDS (Contd..1)COMMANDS (Contd..2)Condition CodesCondition Codes (Contd..1)Condition Codes (Contd..2)Condition Codes (Contd..3)Modal CommandsModal Commands (Contd.)Modal Commands - SyntaxFunctional CommandsFunctional Commands (Contd..1)Functional Commands (Contd..2)Functional Commands (Contd..3)Functional Commands (Contd..4)Functional Commands (Contd..5)Example: Modal & Functional CommandsDefine and Load a VSAM DatasetDEFINE CLUSTERDEFINE CLUSTER exampleLISTCATLISTCAT SyntaxLISTCAT exampleREPROREPRO SyntaxREPRO exampleDELETEDELETE Command Syntax DELETE examplePRINTPRINT SyntaxPRINT exampleVERIFYVERIFY ExampleVERIFY Example (Contd..)ALTERNATE INDEXSteps to create an ALTINDXDEFINE ALTINDX exampleBLDINDXBLDINDX exampleDEFINE PATHDEFINE PATH example GDG GDG (Contd..) GDG Advantages GDG Usage GDG SyntaxGDG exampleVSAM Backup considerationsUtility U.5 in ISPFU.5.1 OptionVSAM Advanced TopicsCICS VSAM Transparency for z/OS VSAM to DB2 migrationOther advanced topics in VSAM Discussion TopicsDiscussion topics (Contd.)Demo/ExerciseDemo ReferencesTHANK YOU