Navigation

    DDBB

    • Register
    • Login
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    新手入门之如何创建和使用VSAM(IDCAMS)

    DATA MANAGEMENT SYSTEMS
    1
    1
    70
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      admin last edited by

      可以用来操作VSAM和GDG文件
      ​

      1. 关于VSAM:
        Vsam文件:
        Vsam(virtual storage access method)文件是IBM在虚拟存储和树型数据结构基础上,为满足数据量大,存取速度快和维护起来方便而发展起来的一种文件组织形式。VSAM以索引键(key)或相对字节地址(BRA)来安排纪录的存放位置,它支持直接访问和顺序访问两种方式。
        VASM文件结构:
        VSAM文件中的数据都以纪录的格式存放,逻辑纪录是访问数据的单位,VSAM文件将纪录存放一个个CI(Control Interval)中,一个CI是DASD中一片连续的区域,用来存储数据纪录以及控制信息。当读取一个记录时,这个记录所在的CI将整个读到VSAM I/O缓冲区,然后用户要读的纪录才从VSAM缓冲区传输到用户定义工作区。CI的大小在创建VSAM文件时由用户指定,也可以让系统自动选择合适的大小。
        每个CI含有如下信息:
        逻辑纪录:纪录用户数据,每个CI可以含有多个逻辑纪录
        自由空间:每个CI可以有一定的自由空间,可以用来插入新的纪录
        控制信息:主要是RDF和CIDF,RDF描述每一个记录的信息,而CIDF则描述整个CI的信息。
        CICS支持以下三种VSAM文件:
        KSDS(Key Sequenced Data Set)
        ESDS(Entry Sequenced Data Set)
        RRDS(Relative Record Data Set)
        VSAM文件的定义:
        VSAM数据集可以通过访问方法集(Access Method Services)的DEFINE CULSTER或ALLOCATE命令来定义,定义VSAM时要制定数据集的属性。
        如果系统中使用了SMS来管理存储,定义的数据集又是系统管理的数据集,则可指定DATA CLASS,MANAGEMENT CLASS和STORAGE CLASS,
        也可以使用系统默认的存储定义。
        VSAM数据集的属性信息有:
        INDEXED | NONINDEXED | NUMBERED | LINEAR:指定数据集的形式分别是 KSDS | ESDS | RRDS | LDS
        RECORDSIZE:指定纪录的平均和最大长度。
        KEY: 指明纪录的平均和最大长度
        CATALOG: 指明所用编目的名字和口令
        VOLUMES: 指明所用得卷
        REDORDS | KILOBYIES | MEGABYIES | TRACKS | CYLINDERS:以不同方式份分配空间的大小
        BUFFERSPACE: 指明处理数据集时应分配的最小缓冲区
        CONTRLINTERVALSIZE: 指明CI的大小
        SPANNED: 指明CI可否跨CI存放
        IMBED: 指示是否把索引的顺序集放在相应的CA中
        FREESPACE 指明预留自由空间大小
        SHAREOPTION 指明文件在不同REGION之间共享级别

        ****** ***************************** Top of Data ******************************
        000001 //jobcard                                 
        000007 //********************************************************************* 
        000008 //*       STEP1   VSAM                                                  
        000009 //********************************************************************* 
        000010 //STEP1   EXEC PGM=IDCAMS                                               
        000011 //SYSPRINT DD SYSOUT=*                                                  
        000012 //SYSOUT   DD SYSOUT=*                                                  
        000013 //SYSIN    DD *                                                         
        000014   DELETE your.vsam.name CLUSTER PURGE                            
        000015   DEFINE CLUSTER(NAME(your.vsam.name) -                          
        000016          INDEXED -                                                      
        000017          KEYS(5 0) -                                                    
        000018          REC(50 10) -                                                   
        000019          RECSZ(80 80) -                                                 
        000020          CISZ(4096) -                                                   
        000021          FSPC(10 20) -                                                  
        000022          VOL(STN813) -                                                  
        000023          SHR(3 3) -                                                     
        000024          UNQ -                                                          
        000025          SPEED)                                                         
        000026 /*                                                                      
        000027 //*********************************************************************
        000028 //*       STEP2   INPUT                                                 
        000029 //********************************************************************* 
        000030 //STEP2   EXEC PGM=IDCAMS                                               
        000031 //SYSPRINT DD SYSOUT=*                                                  
        000032 //SYSOUT   DD SYSOUT=*                                                  
        000033 //INFILE   DD *                                                         
        000034 AAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA                                    
        000035 /*                                                                      
        000036 //OUTFILE DD DSN=your.vsam.name,DISP=SHR                         
        000037 //SYSIN DD *                                                            
        000038   REPRO IFILE(INFILE) -                                                 
        000039         OFILE(OUTFILE)                                                  
        000040 /*                                                                      
        000041 //********************************************************************* 
        000042 //*       STEP3   PRINT                                                 
        000043 //********************************************************************* 
        000044 //STEP3   EXEC PGM=IDCAMS                                               
        000045 //SYSPRINT DD SYSOUT=*                                                  
        000046 //SYSOUT   DD SYSOUT=*                                                  
        000047 //INFILE DD DSN=your.vsam.name,DISP=SHR                          
        000048 //SYSIN DD *                                                            
        000049   PRINT IFILE(INFILE) -                                                 
        000050         CHAR                                                            
        000051 /*                                                                      
        ****** **************************** Bottom of Data ****************************
        

        定义一个ESDS类型的VSAM文件,如果该文件存在,则先删除

        //jobcard                                                                
        //*********************************************************************                                                                
        //*       STEP1   ESDS                                                                
        //*********************************************************************                                                                
        //STEP1   EXEC PGM=IDCAMS                                                                
        //SYSPRINT DD SYSOUT=*                                                                
        //SYSOUT   DD SYSOUT=*                                                                
        //SYSIN    DD *                                                                
          DELETE STJI.MJA.VE025.TESTVS CLUSTER PURGE                                                                
          IF MAXCC=8 THEN SET MAXCC=0                                                                
          DEFINE CLUSTER(NAME(STJI.MJA.VE025.TESTVS) -                                                                
          REC(50 10) -                                                                
          RECSZ(80 80) -                                                                
          CISZ(4096) -                                                                
          FSPC(10 20) -                                                                
          VOL(STN813) -                                                                
          SHR(3 3) -                                                                
          NONINDEXED -                                                                
          SPEED)                                                                
        /* 
        

        定义一个RRDS类型的VSAM文件,如果该文件存在,则先删除

        //jobcard                                                        
        //*********************************************************************                                                        
        //*       STEP1   RRDS                                                        
        //*********************************************************************                                                        
        //STEP1   EXEC PGM=IDCAMS                                                        
        //SYSPRINT DD SYSOUT=*                                                        
        //SYSOUT   DD SYSOUT=*                                                        
        //SYSIN    DD *                                                        
          DELETE STJI.MJA.VE025.TESTVS CLUSTER PURGE                                                        
          IF MAXCC=8 THEN SET MAXCC=0                                                        
          DEFINE CLUSTER(NAME(STJI.MJA.VE025.TESTVS) -                                                        
          REC(50 10) -                                                        
          RECSZ(80 80) -                                                        
          CISZ(4096) -                                                        
          FSPC(10 20) -                                                        
          VOL(STN813) -                                                        
          SHR(3 3) -                                                        
          NUMBERED -                                                        
          SPEED)                                                        
        /*     
        

        ​

      1 Reply Last reply Reply Quote 0
      • First post
        Last post