- 浏览: 915030 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (537)
- Java SE (114)
- Struts (18)
- Hibernate (25)
- Spring (3)
- Page_Tech (41)
- Others (87)
- Database (29)
- Server (24)
- OpenSource_Tools (15)
- IDE_Tool (22)
- Algorithm (28)
- Interview (22)
- Test (28)
- Hardware (1)
- Mainframe (25)
- Web application (4)
- Linux (3)
- PHP (17)
- Android (1)
- Perl (6)
- ubuntu (1)
- Java EE (9)
- Web Analysis (5)
- Node.js (2)
- javascript (2)
最新评论
-
一键注册:
request.getRequestURL()和request.getRequestURI() -
SuperCustomer:
...
SED的暂存空间和模式空间 -
juyo_ch:
讲得挺好理解的,学习了
java 死锁及解决 -
chinaalex:
最后一题答案正确,但是分析有误.按照如下过程,上一行为瓶,下一 ...
zz智力题 -
liaowuxukong:
多谢博主啦,弱弱的了解了一点。
C++/Java 实现多态的方法(C++)
一个礼拜没整理大机笔记liao ,感觉再不整理的话就对不起大机。昨天的确是虚脱了,所以高珍的课听得象梦游似的。今天比较认真,早上、下午都在机房混,虽然天气很热,但还是顶下来,偶没睡觉,哈哈,真是个意外,连我自己也吓了一跳。
一、VSAM概述:
VSAM(Virtual Storage Access Method)是一种相当与接口的访问方法,是操作系统与应用程序之间的桥梁,其主要目的是提高数据存取的效率。
VSAM读取记录的过程如下:
1、VSAM负责解释应用程序的逻辑请求并且决定需要使用的设备
2、VSAM负责向操作系统申请输入和输出的操作。
3、操作系统执行实际的物理输入和输出操作。
4、VSAM将数据返回给应用程序处理。
二、VSAM数据集类型和结构
[术语]
1、控制段(Control Interval、CI)
---CI是VSAM数据集(除了Liner Data Set)输入输出的单位。
结构如右:R1 | R2 | FREE SPACE | RDF2 | RDF1 | CIDF
---其中,R1、R2表示数据,RDF2、RDF1描述CI中的记录信息(长度和起始位置),每个RDF长度为3个字节。CIDF描述FREE SPACE的大小(2字节)和位置(2字节),长度4字节。
---需要注意的地方,Record从左往右连续填写,RDF紧挨着CIDF从右往左连续填写。FREE SPACE 在中间,刚好两肋插刀。
---如果一个CI中存放的所有记录的长度都相等的话,则整个CI只有两个RDF,一个说明记录长度,另一个说明记录个数。
---CI大小范围[512Byte,32K]
2、控制区(Control Area、CA)
---VSAM数据集创建时所需要的磁盘空间大小是以CA为单位进行分配的。
---由几个连续的CI组成。同一个VSAM里头每个CA都有相同的CI个数。CA的大小可以在定义VSAM数据集的是时候指定。
---CA大小范围 [一个磁道,一个柱面]
3、相对字节位置(Relative Byte Address、RBA)
---RBA是指VSAM数据集中记录的相对位置,从数据集的起始位置开始计算,VSAM将数据看成连续的字节流。
RBA:02040
R1|R2|R3
4、Spanned Record
---长度超过一个CI大小的记录
---大小范围(CI,CA-VSAM控制信息]
5、数据集(Cluster)
---一个逻辑上的概念,由若干个物理数据集组成。
---一般来说,Cluster和Data set之间没什么区别,除了KSDS Cluster。KSDS Cluster 包括KSDS.DATA 和KSDS.INDEX两部分。
[数据集类型]
1、ESDS(Entry-Sequenced Data Set)进入顺序数据集
---ESDS仅由数据部分组成,本质上来说,它是个SDS。
---查找记录可以用顺序查找或者是RBA查找;增加记录只能从后面加;更新记录的话,新记录的长度必须和旧记录的相同;删除记录操作只能从逻辑上删除,无法从磁盘中真正删除。
2、KSDS(Key-Sequenced Data Set)索引顺序数据集
---KSDS包括两部分:Data Component、Index Component
---每个逻辑记录都有一个索引,记录按照索引的升序排列。
---索引必须是连续且唯一的。
---CA中的CI之间可能不是按序排列的,CI内的记录则一定是按序排列。
---索引是树状结构的。IS(Index Set)包含较高层的索引信息,SS(Sequence Set)包含最低层的索引信息。
---SS的大小为一个CI,对应一个数据CA,SS包含下一个SS的水平指针和对应的每个CI的最大索引值以及相应CI的指针(CI的RBA)
---SS的指针超过一个CI大小时,系统会建立多级的IS,但是顶层只能有一个IS。
---KSDS的访问方法:
直接存取
(1)查询顶层IS的索引,以决定要要找的记录位于下一层的哪个IS;
(2)循环寻找,直至SS层。
(3)根据SS的记录,对索引所在的CI进行定位。
(4)将该CI从DASD读入到存储器中,取得所要的记录传送到程序中。(以CI为单位进行IO,切记)
顺序存取
(1)定位到第一个CI
(2)从第一个记录开始,顺序读取每个记录,直至完成所有的记录读取操作。
定位顺序存取
(1)按照直接存取的方式定位到需要读取的指针
(2)按照顺序存取方式从指定的记录开始顺序处理,直至完成所有操作。
---KSDS的插入操作:
(1)若目标CI有足够空间的话,则在目标位置插入新记录,并建立相应的RDF,更新SS。
(2)如果目标CI没有足够空间,但CA内还有空的CI,则VSAM产生CI Split操作,将原CI的后半部分(N/2的上限)以及它们所对应的RDF移到空的CI内。新记录增加在原CI的相应位置,并增加RDF,更新SS。
(3)如果目标CI没有足够空间,同时CA内没有空的CI,则VSAM产生CA Split操作。 方法类同CI Split 操作,不过要注意的是SS也会split,并且产生IS。
3、RRDS(Relative Record Data Set)相对记录数据集
---仅由Data Component组成
---每个CI都分成固定大小的片(slot)并且具有相同数目的slot,每个slot都有一个相对记录编号(RRN)。
---每个slot都有一个RDF与之对应,RDF表示该slot是否为空。
4、LDS(Linear Data Set)线性数据集合
---只有Data Component组成,每个CI中都只有数据而没有控制信息。
三、VSAM的编目
1、对数据集的编目实际是对数据集的入口建立列表和索引。
2、在z/OS系统中,主编目只有一个,它描述系统的数据集和用户编目,而用户编目则描述用户的数据集。
3、用户编目的建立是选择性的,主要目的是缩短编目的寻找时间。
4、z/OS系统中,编目结构只有两级。
四、IDCAMS(集成编目访问方法服务实用程序)
[格式]
//SYSIN DD *
DEFINE CLUSTER -/*续行标记 为“-”,切记
(NAME(ST018.EXAMPLE.KSDS1) - /* 子参数间不是用逗号隔开 ,而是空格,切记切记!
INDEXED -
VOLUNES(USER02) -
FREESPACE(20 10) -
RECORDSIZE(100 100) )
[AMS命令的应用]
1、DEFINE MASTERCATALOG
建立主编目:
DEFINE MASTERCATALOG
(parameters) -
[DATA(parameters)] -
[INDEX(parameters)] -
[CATALOG (parameters)] -
2、DEFINE USERCATALOG
建立用户编目:
DEFINE USERCATALOG
(parameters) -
[DATA(parameters)] -
[INDEX(parameters)] -
[CATALOG (parameters)] -
3、DEFINE CLUSTER (建立并定义VSAM数据集)
DEFINE CLUSTER
(NAME(entryname) -
{CYCINDERS (primary [secondary])| -
RECORDS (primary [secondary])} -
[FREESPACE (cipercent [capercent])] -
[INDEXED | NONINDEXED | NUMBERED | LINEAR] -
[KEYS(LENGTH OFFSET)] -
[RECORDSIZE(average maximum)] -
[RECOVERY | SPEED] -
[SHAROPTIONS(crosspartition [cross system])] -
[VOLUMES(volser [volser...])])
[DATA
([NAME(entryname)])]
[INDEX
([NAME(entryname)])]
[CATALOG(mastercatname [/password])]
*******说明:
(1)NAME:指明VSAM数据集的名字,命名规则和其它数据集相同。
(2)CYLINDERS:以柱面为单位分配空间,仅限于磁盘数据集。Primary指第一次进行分配的数量,secondary指追加的分配数量。
(3)RECORD:以记录为单位进行数据集的分配。
(4)FREESPACE:给KSDS或者VRRDS中的每个CI和CA分别预留多少百分比的空间。默认为0;
(5)INDEXED:数据集类型为KSDS
(6)NONINDEXED:数据集类型为ESDS
(7)NUMBERED:数据集类型为RRDS,如果记录平均长度和最大长度不一样,则为VRRDS。
(8)LINEAR:数据集类型为LDS
(9)KEYS:说明数据集中索引的长度和起始位置。注意,偏移良是从零开始的。
(10)RECORDSIZE:分别指定记录的平均长度和最大长度。如果两值相等,则代表数据集的记录是定长格式
(11)VOLUME: 卷标号
(12)DATA:代表KSDS数据集的数据部分
(13)INDEX:代表KSDS数据集的索引部分
4、REPRO
将记录存入数据集中、复制VSAM数据集、复制编目、分开编目或者合并编目。
REPRO{INDATASET(data set name)|
INFILE(DDname)}
{OUTDATASET(data set name)
OUTFILE(DDname)}
[NOREPLACE | REPLACE]
[NOREUSE | REUSE]
5、LISTCAT
显示编目的一部分或者全部信息
LISTCAT[CLUSTER | USERCATALOG]
[CATALOG (catname)]#说明要显示的数据集的编目信息
[ENTRIES(entryname)]#说明编目中的哪一个数据集信息需要显示
[NAME | ALL]# 把编目中指定的名称显示出来,ALL是显示所有的信息
********************一个例子*********************************
000100 //ST018A JOB ACCT#,'TRAINER',CLASS=A,NOTIFY=&SYSUID,
000200 //MSGCLASS=X,MSGLEVEL=(1,1)
000300 //STEP1EXEC PGM=IDCAMS
000400 //SYSPRINT DD SYSOUT=*
000500 //SYSINDD *
000600DELETE 'ST018.VSAM.KSDS1'
000700SET MAXCC = 0
000800DEFINE CLUSTER -
000900(NAME(ST018.VSAM.KSDS1) -
001000INDEXED -
001100VOLUME(USER02) -
001200RECORDS(4000,100) -
001300RECORDSIZE(80 80) -
001400CONTROLINTERVALSIZE(4096) -
001500KEYS(5,4))
001600IF LASTCC=0 THEN -
001700DO
001800REPRO INDATASET(ST018.SDS.DATA) -
001900OUTDATASET(ST018.VSAM.KSDS1)
002000IF LASTCC=0 THEN -
002100DO
002200LISTCAT ENT(ST018.VSAM.KSDS1) ALL
002300PRINTINDATASET(ST018.VSAM.KSDS1) DUMP -
002400FROMKEY(00100) TOKEY(00300)
002500IF LASTCC=0 THEN -
002600DO
002700LISTCAT ENT(ST018.VSAM.KSDS1) ALL
002800DELETE 'ST018.VSAM.KSDS1'
002900DEFINE CLUSTER -
003000(NAME(ST018.VSAM.KSDS1) -
003100INDEXED -
003200VOLUME(USER02) -
003300RECORDS(3000 100) -
003400RECSZ(80 80) -
003500KEYS(5 4) -
003600CONTROLINTERVALSIZE(4096) -
003700FREESPACE(10) -
003800BUFFERSPACE(50000))
003900LISTCAT ENT(ST018.VSAM.KSDS1) ALL
004000END
004100END
004200ELSE -
004300LISTCAT ENT(ST018.VSAM.KSDS1) ALL
004400END
004500 //
小结:
这篇文章,有点恶心,总感觉又在做帮助文档了。。。没想法。
要注意的几个地方:
1、KSDS里的KEY 不能重复,切记切记。
2、VSAM数据集可以JCL语句或3.2界面进行创建。
3、对VSAM数据集的操作必须使用M.7(DITTO)或者JCL直接调用
4、AMS里头的子参数是用空格隔开的,而非逗号,切记!
发表评论
-
服务器集群从微软到IBM的实现原理
2012-03-22 10:21 2252适用机型: 所有服务器 文档内容: I ... -
TSO$ISPF入门 (怎样进入UNIX 从 ISPF)
2012-03-16 10:56 2398主机文件基础知识主机DATASET(就是PC的文件) 名字h ... -
[zz] 主机OS/390汇编程序入门篇
2011-12-28 15:41 1392概述 主机OS/390 汇编程序曾经风靡一时。它曾应用于 ... -
ISAM and VSAM
2011-11-27 13:55 2306一、ISAM文件 索引顺序 ... -
LOADXX in IPL
2011-11-27 13:55 842When the system is up, operator ... -
VSAM
2011-11-16 10:02 0一、VSAM概述: VSAM(Virtual St ... -
[转]大型机几种常见的文件格式
2011-11-16 09:59 0前面提到了几个例子 ... -
DFSMS之ACS介绍
2011-11-16 09:56 985ACS routine简介ACS是“自动类选择”的意思。在IS ... -
DFSMS四个组件
2011-11-16 09:54 982DFSMS四个基本组件概述 ... -
More about IPL
2011-11-16 09:47 824The Hardware Management Conso ... -
VSAM基础知识介绍
2011-11-16 09:46 14211。VSAM基本概念 虚拟存 ... -
Catalog数据集查找流程与VTOC介绍
2011-11-16 09:44 1515Catalog与查找数据集Catalog是一个很重要的概念,依 ... -
JCL错误集锦
2011-04-07 17:19 6885在工作中,TSO可能会根据不同的工作性质来安装不同的模块, ... -
IMS 介绍
2011-02-23 14:22 1534简介 IMS 是 IBM ... -
data set
2011-01-21 14:21 887在IBM的主框架操作系统中,数据集(data set)就是一个 ... -
IEBCOMP 和 IEHLIST
2011-01-21 09:41 1463IEBCOMP IEBCOMPR 程序用 ... -
IEBPTPCH
2011-01-21 09:40 1615IEBPTPCH IEBPTPCH 可以 ... -
IEBCOPY
2011-01-21 09:38 1022IEBCOPY : IEBCOPY ... -
大型机学习之具体技术之-JCL练习(三)
2011-01-21 09:34 1681继续练习 JCL, 虽说速度确实有点慢,可是我也尽力了,时 ... -
CICS 下建立MAP
2011-01-19 17:28 1375起这个标题的时候,自己都还是迷迷糊糊的,因为 我到现在还搞 ...
相关推荐
VSAM(Virtual Storage Access Method,虚拟存储访问方法)是IBM在大型机系统中广泛使用的一种数据访问技术。它是一种高效、高性能的文件系统,尤其适用于处理大量实时交易数据。在这个文档中,我们将深入探讨VSAM的...
### IBM VSAM教学课件知识点概述 #### 一、VSAM简介 - **VSAM**(Virtual Storage Access Method)是一种高效的数据存储与访问方法,主要用于IBM的大型主机操作系统**z/OS**和**OS/390**环境中。 - **目标**: 通过本...
### VSAM介绍中文 大型机 #### 一、VSAM基本概念 **虚拟存储访问方法**(VSAM,Virtual Storage Access Method)是IBM为大型机环境开发的一种高性能文件管理系统。VSAM的主要设计理念是实现高效的文件管理和数据...
### VSAM介绍(中文) #### 一、VSAM概述 VSAM(Virtual Storage Access Method,虚拟存储访问方法)是一种高效的数据组织与管理方法,主要用于IBM的大型机系统中,特别是z/OS操作系统环境下。它是专门为虚拟存储...
### VSAM操作笔记知识点 #### 一、概要 VSAM(Virtual Storage Access Method)是一种在IBM大型机系统中高效管理文件的方法。本篇笔记主要介绍如何创建、初始化、删除VSAM文件,并提供了如何直接使用命令操作VSAM...
VSAM(Virtual Storage Access Method)是一种虚拟存储访问方法,主要用来组织数据记录,并利用编目实现数据集的维护。VSAM适用于多种作业方式,包括批处理作业和在线作业。它是一个在操作系统和应用程序之间的接口...
VSAM(Virtual Storage Access Method,虚拟存储访问方法)是IBM在大型机系统中广泛使用的一种数据访问技术。它提供了一种高效、灵活的数据存取方式,尤其适用于事务处理和在线数据库应用。本训练资料主要围绕VSAM的...
VSAM,全称为Virtual Storage Access Method,是IBM大型机系统中一种高效的数据访问方法。它是一种集成文件系统,设计用于优化IBM Mainframe环境中的数据存取速度和管理效率。本电子教程将深入介绍VSAM的基本概念、...
### VSAM介绍与知识点详解 #### 一、VSAM基本概念及重要性 VSAM,全称Virtual Storage Access Method,即虚拟存储存取方法,是在IBM系列计算机中广泛应用的一种高效文件管理系统。它基于虚拟存储技术,旨在实现与...
在IBM大型机环境中,VSAM(Virtual Storage Access Method)是一种高效的数据访问方法,它提供了对数据的快速存取。VSAM文件通常用于处理大量实时数据,如交易处理系统。本篇将详细介绍如何使用JCL(Job Control ...
VSAM,全称为Virtual Storage Access Method,是IBM大型机系统中一种重要的数据访问方法,它作为操作系统和应用程序之间的接口,优化了数据存取的效率。VSAM通过解释应用程序的逻辑请求,协调操作系统进行输入输出...
VSAM(Virtual Storage Access Method)是IBM大型机操作系统中的一种数据访问方法,它提供了一种高效、快速的数据存取机制。VSAM数据集是VSAM系统的核心组成部分,它包括DATA和INDEX两个主要部分。 DATA部分是VSAM...
VSAM,全称为Virtual Storage Access Method,是一种IBM开发的高效、多功能的文件管理系统,尤其在COBOL编程环境中广泛使用。它采用了B+树作为动态索引结构,以支持快速的顺序和直接存取操作。VSAM的设计目标是提供...
VSAM(Virtual Storage Access Method)是IBM Mainframe系统中一种高效的数据访问方法,它提供了对数据的快速存取。JCL(Job Control Language)则是IBM Mainframe操作系统MVS(Multiple Virtual Storage)上的作业...
【VSAM简介】 VSAM(Virtual Storage Access Method)是一种IBM大型主机系统中高效的数据存取方法,它充当了操作系统和应用程序之间的桥梁,旨在优化数据访问的性能。在VSAM中,数据的读取过程分为四个步骤:首先,...
### VSAM中文教程 #### VSAM概述 VSAM(Virtual Storage Access Method)是一种高性能的数据访问方法,主要用于IBM的MVS、OS/390以及VSE/ESA等操作系统中。尽管VSAM已经有超过30年的历史,但由于其简单性和高效性...
VSAM(Virtual Storage Access Method,虚拟存储访问方法)是IBM在大型机OS/390操作系统上广泛使用的一种高效的数据存取技术。它是一种动态、高性能的文件系统,专为实时处理和高吞吐量应用设计。在"VSAM电影数据...
### VSAM介绍 #### VSAM概述 VSAM(Virtual Storage Access Method)是一种高效的数据组织及存取方法,专为IBM的z/OS操作系统设计。它主要用于优化数据集的管理和访问,提高了数据存取效率和安全性。 #### VSAM的...