VSAM - 命令

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数据集名称.

示例

以下示例显示如何检查和修复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数据集中的错误.