Chinaunix首页 | 论坛 | 博客
  • 博客访问: 622776
  • 博文数量: 142
  • 博客积分: 116
  • 博客等级: 入伍新兵
  • 技术积分: 1445
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-28 08:37
文章分类

全部博文(142)

文章存档

2017年(7)

2016年(57)

2015年(48)

2014年(30)

我的朋友

分类: 系统运维

2015-01-09 11:56:05

大型机文件系统与windows、*nux的树形文件系统都不同。
它没有层级目录树的概念,也不使用面向字节流的文件。

大型机文件是面向记录的,没有回车换行、文件结束符。
文件的组织形式有很多种,顺序文件,索引访问文件等等,还没搞清楚。

大型机里把文件叫做数据集(DATA SET),
数据集的主要信息(数据集名,存储位置,长度,记录格式,时间戳等)存放在卷目录表里。

卷目录表(VTOC)大概可以对应到windows的文件分配表。

在访问、查找数据集时,需要知道下面3个信息:
    数据集名     DATA SET NAME  (DSN 或 NSNAME)
    磁盘卷号     VOLUMN SERIAL (VOL SER)
    设备类型     DEVICE TYPE
这些信息存储在目录(或称编目)中。

目录(CATALOG)分为主目录(MASTER CATALOG)和用户目录(USER CATALOG)。
主目录一直可用,而用户目录需要连接(CONNECT)到主目录后才可用。
访问用户目录下的文件集还需要在主目录中建立ALIAS。
例如,用户目录下的数据集为COBOL.V2R1M0.SIGYCOMP,
则,用户目录连接到主目录后,还要在主目录中建立名为COBOL的ALIAS,且关联到用户目录。


下面举例说明:

数据集SYS1.IPLPARM(LOADDM):
       需要补充说明一下,SYS1.IPLPARM是一个分区数据集,
             分区可以理解为这个数据集不是一个普通文件,而好像是一个文件夹,
             里面可以存放多个普通文件--称为成员(MEMBER)。
      SYS1.IPLPARM存放于磁盘卷DMTCAT上,设备类型为3390,类型为分区文件。
       它里面包含了很多成员,其中一个是LOADDM,是系统启动参数文件。

数据集COBOL.V2R1M0.SIGYCOMP(IGYCRCTL):
        这是COBOL编译器。
        COBOL.V2R1M0.SIGYCOMP存放于磁盘卷DMTD01上,设备类型为3390,类型为分区文件。

在TSO下执行LISTDS命令,可以显示数据集。
  1. READY
  2. LISTDS 'SYS1.IPLPARM(LOADDM)'
  3. SYS1.IPLPARM
  4. --RECFM-LRECL-BLKSIZE-DSORG
  5. FB 80 6160 PO
  6. --VOLUMES--
  7. DMTCAT
  8. --MEMBER---TTR----ALIAS-TTRN-CNT-DATA
  9. LOADDM 00001C NO 0 0F 01050027 0099279F 0100208F 10010008
  10. 00070004 D7D3E240 40404040 4040
注意,数据集名要加引号,否则会提示
IKJ58503I DATA SET IBMUSER.SYS1.IPLPARM NOT IN CATALOG
这是因为执行命令是会自动加上一个前缀(PREFIX)。

可以用ISPF的3.4查看LOADDM的内容,其中有配置主目录的语句:
SYSCAT   DMTCAT113CCATALOG.MASTER.MCAT
说明主目录位于磁盘卷DMTCAT上,数据集名为CATALOG.MASTER.MCAT。(113C代表什么?)

目录也是个数据集,可以用LISTDS查看。
  1. LISTDS 'CATALOG.MASTER.MCAT'
  2. CATALOG.MASTER.MCAT
  3. --LRECL--DSORG-
  4. 4086 VSAM
  5. --VOLUMES-BLKSIZE
  6. DMTCAT 4096

要查看目录里包含的内容,可以使用LISTCAT命令。
  1. LISTCAT ENTRIES('SYS1.IPLPARM')
  2. NONVSAM ------- SYS1.IPLPARM
  3. IN-CAT --- CATALOG.MASTER.MCAT
ENTRIES/LEVEL用于指定查找的关键字。
        ENTRIES是匹配全名,LEVEL是匹配上层名(HQL)。
        通配符*只代表一层。所以IBMUSER.*不匹配IBMUSER.SY.SRCLIB。

  1. LISTCAT ENTRIES('CATALOG.DATAMGMT.UCAT')
  2. USERCATALOG --- CATALOG.DATAMGMT.UCAT
  3. IN-CAT --- CATALOG.MASTER.MCAT
CATALOG.DATAMGMT.UCAT是用户目录(可以看到上面输出的USERCATALOG)

  1. LISTCAT ENTRIES('COBOL')
  2. ALIAS --------- COBOL
  3. IN-CAT --- CATALOG.MASTER.MCAT
COBOL是一个ALIAS,指向用户目录CATALOG.DATAMGMT.UCAT

再看CATALOG.DATAMGMT.UCAT:
  1. LISTCAT LVL('COBOL') CATALOG('CATALOG.DATAMGMT.UCAT')
  2. NONVSAM ------- COBOL.V2R1M0.INSTALL
  3. NONVSAM ------- COBOL.V2R1M0.SIGYCLST
  4. NONVSAM ------- COBOL.V2R1M0.SIGYCOMP
  5. NONVSAM ------- COBOL.V2R1M0.SIGYMAC
  6. NONVSAM ------- COBOL.V2R1M0.SIGYPROC
  7. NONVSAM ------- COBOL.V2R1M0.SIGYSAMP
  8. READY
  9. LISTCAT EN('COBOL.V2R1M0.SIGYCOMP') CATALOG('CATALOG.DATAMGMT.UCAT')
  10. NONVSAM ------- COBOL.V2R1M0.SIGYCOMP
  11. READY
  12. LISTCAT EN('COBOL.V2R1M0.SIGYCOMP')
  13. NONVSAM ------- COBOL.V2R1M0.SIGYCOMP
  14. IN-CAT --- CATALOG.DATAMGMT.UCAT
指定CATALOG('CATALOG.DATAMGMT.UCAT')的意思是,
在用户目录CATALOG.DATAMGMT.UCAT中查找。省略时默认在主目录中查找。


使用IMPORT CONNECT建立用户目录和主目录的连接,
EXPORT CONNECT断开连接。
当没有建立连接时,将无法操作数据集COBOL.*。
建立连接后,还要建立名为COBOL,关联到CATALOG.DATAMGMT.UCAT的ALIAS才行。

建立连接:
编写下面的JCL并SUBMIT执行。
  1. //JCLDUCAT JOB CLASS=A,MSGLEVEL=(1,1),MSGCLASS=A,NOTIFY=&SYSUID
  2. //**********************************************************************
    //* IMPORT CONNECT CATALOG.DATAMGMT.UCAT TO MASTER CATALOG
    //**********************************************************************
    //STEP1  EXEC PGM=IDCAMS
    //SYSPRINT DD SYSOUT=A
    //SYSIN    DD *
        IMPORT -
            OBJECTS((CATALOG.DATAMGMT.UCAT -
            DEVICETYPE(3390) -
            VOLUMES(DMTD01))) -
            CONNECT -
            CATALOG(CATALOG.MASTER.MCAT)
    /*
    //
或者执行TSO命令
  1. IMPORT CONNECT -
  2.   OBJECTS(('CATALOG.DATAMGMT.UCAT' -
  3.             DEVICETYPE(3390) -
  4.             VOLUMES(DMTD01)))

建立ALIAS:
ISPF的3.2的V(VSAM Utilities),指定下面内容,EXEC执行。
  1. DEFINE ALIAS (NAME(COBOL) -
  2. RELATE(CATALOG.DATAMGMT.UCAT) -
  3. ) CATALOG(CATALOG.MASTER.MCAT)


阅读(794) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~