VSAM命令用于对VSAM数据集执行某些操作.以下是最有用的VSAM命令 :
- Alter
- Repro
- Listcat
- examine
- Verify
更改
ALTER命令用于修改VSAM文件属性.我们可以更改VSAM Cluster定义中提到的VSAM文件的属性.以下是更改属性的语法 :
ALTER file-cluster-name [password] [ADDVOLUMES(volume-serial)] [BUFFERSPACE(size)] [EMPTY / NOEMPTY] [ERASE / NOERASE] [FREESPACE(CI-percentage CA-percentage)] [KEYS(length offset)] [NEWNAME(new-name)] [RECORDSIZE(average maximum)] [REMOVEVOLUMES(volume-serial)] [SCRATCH / NOSCRATCH] [TO(date) / FOR(days)] [UPGRADE / NOUPGRADE] [CATALOG(catalog-name [password]]
上面的语法显示了我们可以在现有VSAM集群中更改的参数.参数说明与VSAM - 集群模块中提到的相同.
示例
以下示例显示如何使用ALTER命令增加Freespace,添加更多卷以及更改键和减号;
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC pgm = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * ALTER MY.VSAM.KSDSFILE [ADDVOLUMES(2)] [FREESPACE(6 6)] [KEYS(10 2)] /*
如果您将在大型机服务器上执行上述JCL.它应该以MAXCC = 0执行,它将改变自由空间,容量和密钥.
Repro
REPRO命令用于将数据加载到VSAM数据集.它还用于将数据从一个VSAM数据集复制到另一个VSAM数据集.我们可以使用此命令将数据从顺序文件复制到VSAM文件. IDCAMS实用程序使用REPRO命令加载数据集.
REPRO INFILE(in-ddname) OUTFILE(out-ddname)
在上面的语法中,in-ddname是具有记录的输入数据集的DD名称. out-ddname是输出数据集的DD名称,其中将复制输入数据集记录.
示例
以下示例显示如何将记录从一个数据集复制到另一个VSAM数据集 :
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC pgm = IDCAMS //IN DD DSN = MY.VSAM.KSDSFILE,disP = SHR //OUT DD DSN = MY.VSAM1.KSDSFILE,disP = SHR //SYSPRINT DD SYSOUT = * //SYSIN DD * REPRO INFILE(IN) OUTFILE(OUT) /*
如果您将在Mainframes服务器上执行上述JCL.它应该以MAXCC = 0执行,并将所有记录从MY.VSAM.KSDSFILE复制到MY.VSAM1.KSDSFILE VSAM文件.
Listcat
LISTCAT命令用于获取VSAM数据集的目录详细信息. Listcat命令提供以下有关VSAM数据集的信息 :
- SMS information
- RLS information
- Volume information
- Sphere information
- Allocation information
- Dataset Attributes
LISTCAT ENTRY(vsam-file-name) ALL
在上面的语法中,vsam-file-name是我们需要所有信息的VSAM数据集名称.指定ALL关键字以获取所有目录详细信息.
示例
以下示例显示了如何使用Listcat命令获取VSAM数据集的所有详细信息 :
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC pgm = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * LISTCAT ENTRY(MY.VSAM.KSDSFILE) ALL /*
如果您将在Mainframes服务器上执行上述JCL.它应该以MAXCC = 0执行,它将显示有关MY.VSAM.KSDSFILE数据集的所有目录详细信息.
检查
检查命令是否使用检查密钥序列数据集簇的结构完整性.它检查索引和数据组件,如果发现任何问题,则发送错误消息假脱机.您可以查看任何IDCxxxxx消息.
examine NAME(vsam-ksds-name) - INDEXTEST DATATEST - ERRORLIMIT(50)
在上面的语法中,vsam-ksds-name是我们需要检查VSAM的索引和数据部分的VSAM数据集名称cluster.
示例
以下示例显示如何检查KSDS数据集的索引和数据部分是否同步&减去;
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC pgm = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * examine NAME(MY.VSAM.KSDSFILE) - INDEXTEST DATATEST - ERRORLIMIT(50) /*
如果您将在大型机服务器上执行上述JCL.它应该以MAXCC = 0执行,它将在假脱机中的一个IDCxxxxx消息中显示VSAM数据集的所有问题.
验证
Verify命令用于检查和修复错误后未正确关闭的VSAM文件.该命令将正确的End-Of-Data记录添加到文件中.
VERIFY DS(vsam-file-name)
在上面的语法中,vsam-file-name是我们需要检查错误的VSAM数据集名称.
示例
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC pgm = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * VERIFY DS(MY.VSAM.KSDSFILE) /*
如果你将在大型机服务器上执行上述JCL.它应该以MAXCC = 0执行,它将修复VSAM数据集中的错误.