现在用网络传真的用户多不多啊?
网络传真和传统的传真机区别在于,它无需任何软硬件的支持,只要你能上网就能完成收发传真。而且因为它无需任何软硬件、发送接收也不用纸(传真直接进入电脑),因此它的投入成本和运行成本是十分廉价的。
现在市场上的网络(3G)传真很多,良莠参差不齐,用了之后才会知道区别很大。
你只要去问运营商申请一个传真号码,然后和他们提供的默认邮箱绑定了,以后上网登陆了就可以直接接收和发送传真,说实话,真的很方便。
目前市面上的网络传真很多。怎么选择好网络传真可以从这几个方面着手。1.是否有自己独立的服务器及线路,保证稳定性和安全性 2.发送速度的快慢 3.操作使用的方便性 4.收费问题。
我强力推荐您使用 “铁通传真通”——Myfax网络传真,他们是国内最的最早最专业的,独立的服务器及线路,和运营商紧密合作。他们按照你实际的发送情况来收费(包括你客户所在区域和发送成功情况),发送状态也很稳定,接收好像完全免费的,可以根据你的需要开设n个分机,还可以发短信和有效屏蔽垃圾传真等功能,(如果贵公司有企业邮箱,他们也提供“企业传真邮”服务,让每个需要传真业务的员工,都拥有属于自己的一个专属传真号,用自己的企业邮箱就能管理使用传真),你自己去他们的网站看下吧,应该可以满足你的要求!
对于Myfax网络传真的成功案例:中国移动上海分公司、中国联通上海分公司、上海通用汽车金融有限责任公司、东方卫视、泰康人寿上海分公司、伊莱克斯(中国)电器有限公司、上海大田国际货运有限公司、民航上海华东生活服务中心、中国社会工作协会志愿者委员会、Airbus空中客车上海办事处、上海亚冬会站服务有限公司、大田-联邦快递有限公司、普利斯通(中国)投资有限公司……
所以使用网络传真的群体分类很广 也无特定类别,只要企业有需求,不论是为了提供工作效率,有效管理传真文件,企业推广宣传,都可以使用网络传真!
vsam dataset information中 records retrieved什么意思
VSAM(Virtual Storage Access
Method)文件是IBM公司在虚拟存储器和树型数据结构的基础上,为了满足数据量大,存取速度快和维护方便的要求而发展起来的一种文件组织形式。VSAM文件可分为以下几种组织形式:
1)
键顺序文件KSDS:这种文件与索引文件相似,由索引部分和数据部分组成。索引部分包含树型结构的多级索引。数据部分内的记录按键值顺序排列。因此,这种文件及可以按键值进行顺序存取,也可利用索引,根据键值进行直接存取。
2)
输入顺序文件ESDS:文件内的记录按输入顺序排列。因此,可以按照排列顺序进行存取,也可以指定记录的相对字节地址,对特定记录进行存取。
3)
相对记录文件RRDS:文件空间被划分为等长的SLOT,每个SLOT只存放一个记录,从第一个SLOT开始分别赋予连续的顺序号,这样的号码叫相对记录号。只要给出相对记录号,就可实现对特定记录的直接存取。
4)
线性文件LDS:只有数据组件,由应用去成组/分解逻辑记录。
1.
VSAM文件结构
VSAM数据集中的数据除线性数据集外,都被组成记录(逻辑记录)。逻辑记录是用户访问数据集的单位。VSAM的逻辑记录与非VSAM数据集的存储方式不同。VSAM将记录存于CI(Control
Interval)。一个CI是直接访问存储设备的一片连续区域,用于存储数据记录及其控制信息。当从直接存储设备上读取一个记录时,包含要读的记录的整个CI都被读到虚存的VSAM
I/O缓冲中,然后用户要读的记录才从VSAM缓冲传输到用户定义的工作区。
CIDF为4字节长,含有关于CI的信息,包括自由空间的数量和位置。RDF也是4字节长,描述记录的长度以及有多少相邻的记录是同样长度的。如果有两个以上的记录长度相同,则它们只使用两个RDF,一个记录的长度,另一个则记录有多少个相邻的记录是同样长度的。
VSAM数据集中的多个CI成组为直接访问存储设备中的一片连续区域称之为CA(Control
Area),一个VSAM数据集由一个以上的CA组成。CA最大为一个柱面,最小必须是一个磁道。
有时一个记录的大小会大于一个CI的大小,在VSAM中,你不必把这个记录劈开,也不必重新格式化这样的记录,因为在定义数据集时可以用SPANNED参数指定记录可以跨多个CI。
VSAM数据集有4种类型:ESDS(Entry sequenced data set)、KSDS(Key Sequenced
Data Set)、LDS(Linear Data Set)、RRDS(Relative Record Data Set)。
2.
VSAM数据集的定义、复制及删除
VSAM数据集的定义
定义一个VSAM数据集之前,应注意:
1) VSAM数据集必须是编目的。
2)
可用TSO ALLOCATE命令、访问方法服务的ALLOCATE或DEFINE
CLUSTER命令、动态分配或JCL。要用JCL定义一个VSAM数据集,SMS必须活跃。
3)
如有必要可定义次键。
对一个KSDS来说,数据部件和索引部件合称为CLUSTER。
CLUSTER提供了把索引和数据部件统一处理的一种方式。数据部件用于存放数据。
索引部件由顺序集和索引集组成。
数据部件中的每一个CA在顺序集中都有一个对应的CI,它含有其对应的数据部件中的CA中的每一个CI的最大键值及其指针。所有顺序集中的CI又顺序地连接在一起。索引部件的其它部分构成了索引集。如图2.11所示,所有索引集和顺序集构成了一棵查询树。其中顺序集可用于顺序访问,而索引集和顺序集合起来可用于随机访问。
图2.11
数据和索引的关系
1)用访问方法服务命令定义VSAM数据集
VSAM数据集可以通过DEFINE
CLUSTER或ALLOCATE命令来定义。当定义了CLUSTER后,VSAM使用三个编目项描述一个CLUSTER:
-一个CLUSTER项把CLUSTER描述为一个部件。
-一个数据项描述CLUSTER的数据部件。
-对KSDS来说,一个索引项描述CLUSTER的索引部件。
(1)关于VSAM文件的属性
如果使用DEFINE CLUSTER命令,数据和索引部件的属性可以与CLUSTER的属性分别指定。
-如果你为CLUSTER指定了属性,则CLUSTER的属性同样适用于部件。
-如果你为CLUSTER和部件都指定了属性,则部件的属性覆盖CLUSTER的属性。
-如用ALLOCATE,则只能在CLUSTER一级指定属性。
定义VSAM数据集时,要指定数据集的属性。如果SMS活跃,你定义的数据集又是系统管理的数据集,你可以指定DATA
CLASS,MANAGEMENT CLASS和STORAGE
CLASS。你也可以用系统默认的这些CONSTRUCT。CONSTRUCT只能在CLUSTER一级上指定。
以下是定义VSAM数据集是有关的描述性信息:
INDEXED|NONINDEXED|NUMBERED|LINEAR:指定数据集的结构形式信息(KSDS、ESDS、RRDS、LDS)。
RECORDSIZE:指定记录的平均和最大长度。不适用于LDS。
注意:
1)可变长度的RRDS用NUMBERED和RECORDSIZE定义,而平均记录长度和最大记录长度必须不同。2)如果对于ESDS,KSDS或可变长度的RRDS数据集,记录长度小于最大记录长度,VSAM把实际记录的长度记录在RDF中。
KEYS:指示KSDS中键的长度和位置。
CATALOG:指示CLUSTER所在的编目的名字和口令。
VOLUMES:指示CLUSTER所在的卷。
RECORDS|KILOBYTES|MEGABYTES|TRACKS|CYLINDERS:指示分配该数据集的空间的单位及大小。
BUFFERSPACE:指示在处理该数据集时,应分配的最小的缓冲。
以下是定义VSAM数据集是有关的性能信息:
CONTROLINTERVALSIZE:指定CI的大小。此参数必须大于记录的最大大小。对LDS无效。
SPANNED:指示记录是否可以跨CI。不适用于RRDS和LDS。
IMBED:指示是否将索引的顺序集放在相应的CA中。如果是,则会提高数据集的性能,但会增加空间
对索引组件的VOLUMES:指示是否把索引组件放在另一个卷上。
FREESPACE:指示预留自由空间的大小。
以下是定义VSAM数据集时有关的安全信息:
AUTHORIZATION:指定你自己的一个授权子程序,验证对此数据集的访问是否合法。
WRITECHECK:指示对此数据集写后是否要检查,以保证以后能读出。
ERASE:指示数据集被删除后,是否要彻底删除。
(2)VSAM数据集的命名
定义CLUSTER时,要指定CLUSTER名。通常,CLUSTER名就是JCL中给出的DSNAME。也可以各自独立命名索引和数据部件。如果只指定了CLUSTER名而未指定索引和数据部件的名字,VSAM会自动产生索引和数据部件名字。VSAM以下列方式产生索引和数据部件名字:
1)
如果CLUSTER的最后一个QUALIFIER是CLUSTER,则数据部件和索引部件名字的最后一个QUALIFIER分别替换为DATA和INDEX。例如:
Cluster名: SALES.REGION2.CLUSTER
产生的数据部件名
= SALES.REGION2.DATA
产生的索引部件名 = SALES.REGION2.INDEX
2)
如果CLUSTER名的长度小于等于38个字符,则分别在CLUSTER名后加.DATA和.INDEX。例如:
Cluster名:
DEPT64.ASSET.INFO
产生的数据部件名 =
DEPT64.ASSET.INFO.DATA
产生的索引部件名 =
DEPT64.ASSET.INFO.INDEX
3)
如果CLUSTER名长度在39到42之间,则在数据部件和索引部件名后分别加.D和.I。例如:
Cluster名:
DEPTABCD.RESOURCE.REGION66.DATA1234.STUFF
产生的数据部件名 =
DEPTABCD.RESOURCE.REGION66.DATA1234.STUFF.D
产生的索引部件名 =
DEPTABCD.RESOURCE.REGION66.DATA1234.STUFF.I
产生索引和数据部件的名字后,VSAM会查找编目,以保证产生的部件名字是唯一的。如国不唯一,则重新产生。
可以用访问方法服务ALLOCATE或TSO
ALLOCATE命令定义一个暂时的VSAM数据集。也用JCL直接定义。系统管理的暂时的VSAM数据集不需要指定数据集名,而由系统自动产生唯一的名字。如果一定要指定则必须以&或&&打头。
(3)为VSAM数据集分配空间
定义数据集时,你或者SMS(通过指定DATA
CLASS)必须指定数据集的空间分配。如果你自己指定则可以以记录数、千字节、兆字节、磁道数、柱面数为单位。为了保持设备的无关性,最好以记录数、千字节、兆字节为单位。你可以在CLUSTER级,数据组件级或索引组件级指定空间大小,但最好在CLUSTER或数据组件级指定。VSAM分配空间的原则如下:
-如果指定了CLUSTER和索引组件的大小,则数据组件的大小是CLUSTER的大小减去索引组件的大小。
-如果只指定了数据组件的大小,则指定的大小全部分配给数据组件,索引组件再另外追加一部分空间。
-如果同时指定了数据组件和索引组件的大小,则按指定的大小建立数据集。
如果你定义一个小于一个柱面的数据集,VSAM以磁道为单位分配空间。此时,最好为数据组件指定首次分配的最大磁道数,并且不要指定数据或索引的第二次分配。分配时,VSAM检查指定的设备的柱面大小,如果要分配的数量大于等于设备的柱面大小,则CA等于柱面大小,如果小于则CA大小等于实际分配量。CA最小为一个磁道。
例:假定已知:
设备类型: 3380
分配单位:
柱面
数据CI大小: 1024字节
物理块大小:
1024字节
记录大小:
200字节
CI中的自由空间比例: 20%
CA中的自由空间比例: 10%
数据集指定IMBED属性
则:
1)
自由空间的字节数=20%*1024=204
2)
每个CI中的记录数=(1024-10-204)/200=4
其中10个字节留作RDF和CIDF。
3)
每磁道的物理块数=31
在3380中每个磁道有31个物理块,每个物理块大小为1024字节。
4)
每磁道的CI数=31
5)
每个CA的最大CI数=31*14=434
其中,每个柱面15个磁道,一个磁道用于存放顺序集。
6)
每个CA的CI数=434-10%*434=391
7)
每个柱面的记录数=4*391=1564
8)
数据组件的总空间=3000/1564=2个柱面。
在数据集定义后,你可以用访问方法服务命令ALTER去改变数据集的属性。ALTER命令也可用于把ESDS改为LDS。但固定长度的RRDS和可变长度的RRDS不能相互转化。
(4)VSAM文件定义举例
例1.1:创建一个编目,在新创建的编目中定义一个数据集并装入数据,列出数据集的编目项,及打印数据集。
//DEFINE JOB ...
//STEP1 EXEC
PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN
DD *
DEFINE USERCATALOG (NAME (USERCATX) ?
ICFCATALOG
CYLINDERS(15 5) -
VOLUMES(VSER05)) ?
DATA
(CYLINDERS(3 1))
IF LASTCC = 0 THEN -
DEFINE CLUSTER(NAME (EXAMPL1.KSDS)-
VOLUMES(VSER05)) -
DATA (KILOBYTES (50 5))
/*
//STEP2 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSABEND DD SYSOUT=*
//AMSDUMP DD SYSOUT=*
//INDSET4 DD
DSNAME=SOURCE.DATA,DISP=OLD,
//
VOL=SER=VSER02,UNIT=3380
//SYSIN DD *
REPRO INFILE(INDSET4) OUTDATASET(EXAMPL1.KSDS)
IF LASTCC = 0 THEN -
LISTCAT ENTRIES(EXAMPL1.KSDS)
IF
LASTCC = 0 THEN -
PRINT
INDATASET(EXAMPL1.KSDS)
/*
例中的IF …THEN等在访问方法服务中称之为MODAL
命令,其语法格式如下:
IF LASTCC/MAXCC =/〉/=/<=/~= 数字
THEN
[命令 或
DO
命令集
END]
[ELSE [命令或
DO
命令集
END]]
LASTCC是上条命令执行的返回码。
第一个DEFINE命令定义了一个用户编目,叫USERCATX。其中:
USERCATALOG关键字说明定义用户编目。
NAME:用户编目的名字。
ICFCATALOG:指示定义的编目是ICF编目。
CYLINDERS:指示编目的大小。
VOLUMES:指示编目的位置。如果编目是系统管理的则不必指定此参数。
DATA:指示编目的数据组件。
CYLINDERS:
指示编目的数据组件的大小。
第二个DEFINE命令定义一个叫EXAMPL1.KSDS的KSDS。其中的参数与定义编目的参数类似,在此不再说明。
REPRO命令将一个已存在的数据集SOURCE.DATA(在INDSET4
DD语句中说明)中的数据装入到EXAMPL1.KSDS中。其参数如下:
INFILE:指示含有源数据的数据集。
OUTDATASET:指示目标数据集。
LISTCAT:列出编目项。
PRINT:打印数据集的内容。
例1.2:用ALLOCATE定义一个暂时的VSAM数据集。
//ALLOC JOB ...
//STEP1
EXEC PGM=IDCAMS
//SYSPRINT DD
SYSOUT=A
//SYSIN DD *
ALLOC -
DSNAME(&CLUSTER) -
NEW PASS -
RECORG(ES) -
SPACE(1,10) -
AVGREC(M) -
LRECL(256) -
STORCLAS(TEMP)
/*
其中的参数意义如下:
DSNAME:指定已创建的数据集的名字。如果是系统管理的暂时数据集,则必须以&或&&打头,或者省略。
NEW:指示在此作业步中创建一个新的数据集。
RECORG:指示创建一个ESDS。
SPACE:指示块长度为1,首次分配量为10。
AVGREC:指示SPACE参数指定的值的单位是兆字节。
LRECL:指示逻辑记录长度为256字节。
STORCLAS:指示STORAGE
CLASS。如果你没指定,则系统会根据ACS程序自动为你分配一个。
用JCL定义VSAM数据集
除可变长度的RRDS外,任何类型的VSAM数据集都可以通过JCL来定义。
例1.3:定义一个KSDS
//DDNAME
DD DSNAME=KSDATA,DISP=(NEW,KEEP),
//
SPACE=(80,(20,2)),AVGREC=U,RECORG=KS,
//
KEYLEN=15,KEYOFF=0,LRECL=250
其中:
DSNAME:数据集的名字。
DISP:创建新的数据集,并保留。
SPACE:记录长80,首次分配20,追加分配5。
AVGREC:指示SPACE中指定的分配量的比例因子是1。
RECORG:创建KSDS
。
KEYLEN:键长15。
KEYOFF:键在记录中的位置。
LRECL:逻辑记录长250字节。
例1.4:创建一个系统管理的KSDS:
//DDNAME
DD DSNAME=KSDATA,DISP=(NEW,KEEP),
//
DATACLAS=STANDARD,STORCLAS=FAST,
//
MGMTCLAS=STANDARD
例1.5:按照默认值创建一个VSAM数据集。
//DDNAME
DD
DSNAME=DSVSAM,DISP=(NEW,CATLG)
装入数据到VSAM数据集
数据集定义后,你可以装入数据到VSAM数据集。
-装入ESDS的记录可以是任何顺序。
-固定长度的RRDS把记录装入到SLOT中,其相对记录号不是逻辑记录的一部分。
-装入KSDS的记录必须按键的升序排列,并且不得有重复键。
-装入可变长度的RRDS的记录必须按键的升序排列,并且不得有重复键。
REPRO命令可用于从顺序,索引顺序或VSAM数据集装入数据。也可用于从一个LDS装入数据到另一个LDS。
装入数据到VSAM数据集的示例可见例1.1。
复制数据集
你可用REPRO作如下事情:
-复制或合并VSAM数据集到另一个VSAM数据集。
-复制或合并顺序数据集到另一个顺序数据集。
-把顺序或索引顺序的数据集转换为VSAM数据集。
-把VSAM数据集复制为顺序数据集。
-复制PDS或PDSE数据集的成员。PDS或PDSE数据集不能复制,但单个的成员可以复制。
例1.6:复制整个数据集:
//STEP1
EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//MASTER DD
DSN=EXAMPLE.KSDS.MASTER,DISP=OLD
//BKUP DD
DSN=EXAMPLE.SAM.BACKUP,UNIT=SYSDA,
//
SPACE=(TRK,(2,1),RLSE),DISP=(NEW,CATLG)
//
VOL=SER=PUB101,
//
DCB=(RECFM=FB,LRECL=80,BLKSIZE=6120)
//SYSIN DD *
REPRO INDATASET(MASTER) ?
OUTDATASET(BKUP)
/*
你也可以只复制一部分记录。用FROMKEY指定从哪一个关键字开始,用FROMADDRESS指定从哪一个记录开始;用TOKEY指定到哪一个关键字结束,用TOADDRESS指定到哪一个记录结束。例1.7:
//STEP1
EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN DD *
REPRO
IDS(EXAMPLE.LASTNAME.INDEX) ?
ODS(EXAMPLE.EXTRACT.ESDS) ?
FROMKEY(DEAN) ?
TOKEY
(LLOYD)
/*
也可以归并两个数据集。例1.8:
REPRO IDS(INPUT) ODS(OUTPUT)
REPLACE
定义次键
次键本身也是一个KSDS。它提供了另一种方法访问VSAM
KSDS和ESDS数据集。
定义次键的步骤如下:
1)
定义CLUSTER。
2) 装入数据。
3)
用DEFINE ALTERNATEINDEX命令定义次键。
4) 用DEFINE
PATH命令将次键与CLUSTER相关联。
5)
用BLDINDEX命令建立次键。也就是在索引中装入数据。
VSAM用3个编目项描述一个次键:
-一个次键项描述次键是一个KSDS。
-一个数据项描述次键的数据部件。
-一个索引项描述次键的索引部件。
定义次键需要指定的信息与定义一个KSDS类似。如果次键允许许多不唯一的键,则RECORDSIZE必须足够大。在定义次键时,如指定了UPGRADE属性,则VSAM数据集改变时,次键自动改变。
例1.9,假定你有一个数据集叫PAYROLL.MASTER,其主键是雇员名字,你想建立一个次键。则:
1)
定义次键:
DEFINE ALTERNATEINDEX (NAME(PAYROLL.DEPT.AIX) ?
RELATE(PAYROLL.MASTER) ?
VOLUMES(AIX001) ?
UPGRADE) ?
DATA (NAME(PAYROLL.DEPT.AIX.DATA) ?
TRACK (5 5) ?
RECORDSIZE(200 2096) ?
KEY (7 65) ?
NONUNIQUEKEY) ?
INDEX
(NAME(PAYROLL.DEPT.AIX.INDEX) ?
IMBED)
2) 定义路径:
DEFINE
PATH(NAME(RAYROLL.DEPT.PATH) ?
PATHENTRY(PAYROLL.DEPT.AIX) ?
UPDATE)
3)
在索引中装入数据:
BLDINDEX INDATASET(RAYROLL.MASTER) ?
OUTDATASET(PAYROLL.DEPT.AIX)
以后你在使用这个数据集时,如果你在JCL中的DD语句如下:
//DD1 DD
DSN=PAYROLL.MASTER,DISP=SHR
则表示你使用主键访问该数据集。
如果你在JCL中的DD语句如下:
//DD1 DD
DSN=PAYROLL.DEPT.AIX,DISP=SHR
则表示你使用次键访问该数据集。
删除数据集
使用访问控制服务的DELETE命令可以删除数据集,你可以删除整个CLUSTER,也可以只删除次键或路径。在此我们不再详细给出命令的语法及实例,感兴趣的读者可参见有关参考资料。
推荐阅读
- ○ 火影忍者338
- ○ 25岁眼霜哪个牌子好
- ○ 斗破苍穹第四季第12集
- ○ 我的2010
- ○ 308激光治疗
- ○ 美人心计4
- ○ 金刚狼1电影国语
- ○ 英文字母26个字母表
- ○ 山东2020高考录取分数线
- ○ 300分左右的专科
最新文章
- ○ 火影忍者338
- ○ 25岁眼霜哪个牌子好
- ○ 斗破苍穹第四季第12集
- ○ 我的2010
- ○ 308激光治疗
- ○ 美人心计4
- ○ 金刚狼1电影国语
- ○ 英文字母26个字母表
- ○ 山东2020高考录取分数线
- ○ 300分左右的专科