欢迎使用“VTCS 必须执行(有时)琐碎事务列表”(也称为“按需任务列表”)。例如,如果本周您决定运行 DELETSCR,以便清除一列占用大量有价值的 VTSS 和 MVC 空间的暂存的 VTV。很好,顺利完成了。您认为要过多久您必须运行同样的操作?尤其是如果您不更改暂存删除策略。答案:可能是一天、一个月或一年,但您将需要再次执行该操作。
不过,别担心。这里将介绍有用的过程,以帮助您削减必须执行(有时)列表,此外,正如您已通过阅读“使用 VTCS 系统信息显示板”看到的,如果您留意 MVC 和 VTV 报告,则甚至可能不需要列表,因为这些报告可告诉您何时需要执行必须执行/按需琐碎事务。
还有另外一类差不多是策略决定的“必须执行(某时)”琐碎事务,但这里也将其包含在内,因为 (a) 这些琐碎事务在性质上是主动的,这使得其作为最佳做法“按需”琐碎事务具有双重价值,以及 (b) 这些琐碎事务是您可以使用、退出和再引入的操作技术,因为其可以在任何时间点为您的企业带来益处(也可能不会)。尽管如此,还是从“执行需求空间回收、迁移和撤回”中所述的该类别中我们最喜欢的三项操作开始吧。
这些任务是可选的,但这些任务是强烈建议的最佳做法(尤其是对需求空间回收而言),其原因很快就会揭晓。
正如您已经知道的,VSM 自动在每个运行回收的主机上回收 MVC 空间,这里的关键词是自动。这意味着空间回收始终在等待工作,尽管其是后台任务,如果您具有大量片段的 MVC,空间回收工作也可能会严重干扰迁移/撤回,尤其是在高峰处理期间。
如果 MVC 摘要报告或 Display MVCPool 显示系统的 MVC 上高级别的片段(该级别低于在 CONFIG RECLAIM THRESHLD 参数或 MVCPool THRESH 参数上指定的值),您可能需要将需求 MVC 空间回收安排为低峰时段批处理作业。
使用 RECLaim 执行需求 MVC 空间回收。打开《ELS Command, Control Statement, and Utility Reference》,您将看到一些有用的工具,这些工具可用于优化需求回收并非常有效地运行该操作。
只能使用 MVCPOOL、STORCLAS、ACSid 或 MVC 参数中的一个来过滤要处理的 MVC 列表。MVC 和 VTV 报告(如“使用 VTCS 系统信息显示板”中所述)可帮助您将可能的候选对象列表范围缩小至 MVC 池、存储类、特定的 ACS 或 MVC 范围或列表。将该列表输入至 RECLaim,这样您就为该作业使用了正确的工具。
如果您不指定这些参数中的一个,空间回收将从命名 MVC 池(如果已实现)或最需要的空闲空间介质类型(对于多个 MVC 介质环境)中选择 MVC。
使用参数 MAXMVC(单个空间回收任务处理的最大 MVC 数)、THRESH(使 MVC 成为回收候选对象的 MVC 片段百分比)和 CONMVC(VTCS 为排出和回收并行处理的最大 MVC 数),可以覆盖需求回收的对应 CONFIG RECLAIM 全局参数。这样您就可以对需求迁移进行调整,使其或多或少比自动迁移更加积极。
NOWAIT 是加快进程的方法,CONMVC 是另一种影响一次处理的 MVC 数的调优方法(有关详细信息,请参见《ELS Command, Control Statement, and Utility Reference》)。
ELAPSE 是检测在您指定的时间间隔之内是否没有发生需求回收的方法。如果在该时间段内没有回收,作业将停止。
另请注意,VTCS 会执行最严格的限制因素。例如,如果您运行 RECLAIM 并指定 ELAPSE 为 5 个小时,MAXMVC 为 10 并且 VTCS 在一个小时内回收 10 个 MVC,则 VTCS 在 ELAPSE 值失效之前终止回收。
VTCS 和 HSC 必须是活动的才能处理 RECLAIM 请求。
如前所述,VTCS/ELS 本质上是一个服务器。例如,VSM 自动管理 VTSS 空间并迁移 VTV 以确保最佳数据可用性、资源使用和数据保护的平衡。
稳定的环境是很好的,但如果发现 VSM 系统要接收大量应用程序数据,应怎么办?答案:可能是时候运行需求迁移批处理作业以在前述的高峰磁带处理事件发生之前释放 VTSS 空间了。
当然,应使用 MIGRATE 执行需求迁移,该命令提供以下选项:
可以迁移 VTV:
按卷序列号(允许重复)
管理类
与 VTV 关联的数据集名称(最有效)。
还提供了您可能需要使用的 DELETE(YES) 选项,该选项在成功迁移之后从 VTSS 空间删除 VTV。通常针对不大可能再次访问的 VTV 使用 DELete (YES)(默认值)。作为替代方案,您可以针对可能再次访问的 VTV指定 DELete (NO) 以确保关键数据可用并快速迁移。
NOWAIT 选项可帮助您加快进程。全部使用 MIGRATE 格式 1;有关详细信息,请参见《ELS Command, Control Statement, and Utility Reference》。
作为替代方案,您可以针对所有 VTSS 或特定的 VTSS 使用 MIGRATE 格式 2 执行需求迁移至阈值。这是一个在您需要时获取 DBU 的很好的工具,VTCS 处理细节。
另请注意,使用 SET MIGopt,可以降低高 AMT 以有效执行需求迁移。
VTCS 提供自动撤回过程,该过程在某个作业请求已迁移到磁带(但未驻留在 VTSS 上)的 VTV 上的数据集时启动。不过,如果遇到与上述情况相反的情况,应怎么办?例如,您要执行年终处理,并且知道有大量作业要从仅位于磁带上的 VTV 读取数据。需求撤回可提供解决方案。
RECALL 可提供您需要的所有控制灵活性:
与 MIGRATE 一样,您可以按卷序列号、管理类或关联的数据集名称撤回 VTV。
您可以指定您要撤回 VTV 的 VTSS。否则,默认为用于创建的 VTSS,有一些与 VTSS 撤回策略相关联的注意事项。有关详细信息,请参见《ELS Command, Control Statement, and Utility Reference》。
通过 RECALWER 可以指定您是否希望撤回具有读取数据检查的 VTV。
提供了用于加快进程的 NOWAIT 选项。
有大量您局限于“查找和修复 VTCS 问题”的 RTD 管理,因为它们几乎都是专门的错误恢复方案。针对 RTD 的最佳做法是具有足够的 RTD 并保持上述所有项目都已启动并运行。请记住,RTD 用于迁移、撤回和回收,因此针对所有这些作业保持正确的 RTD 混合是关键的平衡操作。要通过操作参数调整该混合,请参见“检查虚拟磁带状态(每日)”。
除调整 RTD 操作参数之外,另一个可用于 RTD 的主要工具是 VTCS Vary RTD
命令,该命令用于更改 RTD 状态。可以将 RTD 更改为联机、脱机或维护模式(如果您需要对 RTD 执行维护操作)。
您可能遇到的主要按需任务是相关的,前两个使用 Vary RTD
:
“更改 RTD 设备类型”,基本上是关于如何执行系统的部分或所有 RTD 的技术升级。
您需要考虑您指定 MVC 介质的方式。尽管这些确实是 MVC 注意事项,但由于 RTD 设备类型更改,它们仍会发生。有关更多信息,请参见 Configuring HSC and VTCS。
使用以下过程更改 RTD 设备类型。请注意,更改 RTD 设备类型要求您在所有主机上停止 VTCS。
要更改 RTD 设备类型,请执行以下操作:
查看 VSM 策略。
例如,如果该 RTD 设备类型用于迁移,您可能需要查看管理类和存储类定义。
将旧 RTD 更改为在 VTCS 上脱机。
如果新 RTD 设备使用新 MVS 设备地址,则执行以下操作:
针对 MVS 定义新地址。
运行 DECOMP 以输出 CONFIG 语句。
编辑 CONFIG 语句以将 RTD 地址更改为新值。
运行 CONFIG RESET。
注意:
请勿将新传输更改为在 MVS 中联机!否则,可能会将其作为 Nearline 传输进行分配。安装新 RTD。
将替换了传输的 LSM 更改为脱机状态。
将替换了传输的 LSM 更改为联机状态。
将新 RTD 更改为在 VTCS 上联机。
如有必要,添加 MVC。
有关更多信息,请参见“添加 MVC”。
如您所知,专门讨论任何一个虚拟实体会有些困难。MVC 包含 VTV,因此单独讨论其中一项是很困难的,因为您不可避免地要讨论另外一项。如果要讨论 VTV,也会讨论 VTSS 和 VTD。
尽管如此,以下各节是针对 MVC 执行相当典型的“按需”任务(处于各种原因而执行)的一些基本过程。例如,您可能会因为将要用完空间或因为您很主动并且不希望陷入麻烦而添加 MVC(如前面的情形中所述)。
注:
如果由于处理 SET VOLPARM 或 CONFIG MVCVOL 而从配置中删除 MVC,则:您不能在配置中重新输入卷序列号作为 VTV。
请勿对本机 HSC 磁带使用卷序列号。
消息 SLS6944I 指示已删除的 MVC 数。
ELS 7.2 使添加卷变得更容易。您现在使用 HSC VOLPARM
和 POOLPARM
语句定义所有卷及其池:本机 Nearline 卷、清洗磁带、MVC 和 VTV 以及用于将其装入的 HSC SET VOLPARM
实用程序。有关更多信息,请参见 Configuring HSC and VTCS 和《ELS Command, Control Statement, and Utility Reference》。
添加 MVC:
创建 VOLPARM 语句以定义 MVC。
例如,定义一系列要进行加密的 T10000 完整卷:
VOLPARM VOLSER(T10K2000-T10K2999)MEDIA(T10000T1)RECTECH(T1AE)
创建 POOLPARM 语句以定义 MVC 池。
例如,使用回收参数定义 T10000 MVC 池:
POOLPARM NAME(SYS1MVCT1)TYPE(MVC)MVCFREE(40) MAXMVC(4) THRESH(60) START(70)
根据需要创建或更新 MGMTCLAS 或 STORCLAS 语句。
例如,如果您添加了新的 MVC 介质类型,请遵循 Configuring HSC and VTCS 中的建议。
根据需要更新 POLICY 或 TAPEREQ 输出参数。
例如,如果在步骤 3 中创建了新的管理类,则更新或创建 TAPEREQ
或 POLICY
语句以指向新的管理类。
您是否需要定义 VTV?
定义 VTV:
创建 POOLPARM 或 VOLPARM 语句以定义 VTV。
例如,定义供主机 MVS1
和 MVS2
使用的两个系列的 VTV:
POOLPARM NAME(SYS1VTV1)TYPE(SCRATCH) VOLPARM VOLSER(V5000-V5499)MEDIA(VIRTUAL) POOLPARM NAME(SYS1VTV2)TYPE(SCRATCH) VOLPARM VOLSER(V5500-V5999)MEDIA(VIRTUAL)
转至“验证和应用卷定义”。
您为何从池中移除 MVC?典型的情形可能是您交换出旧磁带机以便对 RTD 进行技术更新并且您希望报废旧介质,在这种情况下,您开始将新 MVC 添加到池中(如添加 MVC中所述),然后移除旧介质(如“永久移除 MVC”中所述)。
请注意,有时您可能希望从池中临时移除 MVC。例如,您具有一些错误的介质或疑似错误的介质。您希望移除错误的介质并放入替换介质(基本在相同的卷序列号之下),如“临时移除 MVC”中所述。
要从池中永久移除 MVC,请执行以下操作:
输入 MVCDRain 以排出 MVC。
例如,要运行 MVCDRain 以排出存储类 STORCL1 中的 MVC,虚拟弹出这些 MVC,并在提交请求之后返回,输入以下内容:
MVCDRAIN STORCLAS(STORCL1) EJECT NOWAIT
如果某个 ACS 中不再需要 MVC,则使用 HSC Eject
命令从 ACS 中弹出 MVC。
删除安全限制以及您为 MVC 定义的磁带管理系统限制。
如果您使用 VOLPARM 和 POOLPARM
定义并且虚拟 CDS 级别为 G 或更高,则继续执行步骤 4。否则,请转至步骤 5。
如果您希望重新使用磁带卷序列号以供 Nearline(非 VTCS)使用并且使用 VOLPARM/POOLPARM
定义,则:
针对您要移除的 MVC 更新 POOLPARM/VOLPARM
语句。
在所有主机上运行 SET VOLPARM APPLY(YES)
以应用更改。
运行 HSC SCRAtch
命令以暂存不再是 MVC 的卷。
如果您要重新使用磁带卷序列号以供 Nearline(非 VTCS)使用并且不使用 VOLPARM and POOLPARM
,则需要执行以下操作之一:
发出 HSC EJECT
命令以从 ACS 中移除 MVC。
更改磁带上的外部条形码标签。
必须更改外部条形码标签,因为 CDS 中保留了原始 MVC 卷序列号,这些卷序列号仅可用作 MVC。
将磁带重新装入 ACS。
或
创建一组新的 CDS 数据集。
运行 HSC MERGECDS
实用程序并指定 DELVirt
以移除不需要的 MVC 范围。
注:
使用该选项时必须停止所有 HSC,因为创建了新的 CDS 数据集。从池中临时移除 MVC:
针对 MVC 输入 MVCDRain Eject。
例如,要运行 MVCDRain 以排出存储类 STORCL1 中的 MVC,虚拟弹出这些 MVC,并在提交请求之后返回,输入以下内容:
MVCDRAIN STORCLAS(STORCL1) EJECT NOWAIT
这将执行以下操作:
撤回 MVC 上的所有 VTV 并将其重新迁移到新的 MVC。
使 MVC 对于 VTCS 迁移是不可选择的。
要将 MVC 返回到 MVC 池中,请针对 MVC 输入 MVCDRain。
针对 MVC 输入 MVCDRain(不带 EJect 参数)可使其再次可用。
例如,要运行 MVCDRain 以排出存储类 STORCL1 中的 MVC 并在提交请求之后返回,输入以下内容:
MVCDRAIN STORCLAS(STORCL1) NOWAIT
使用 MVCDRain“排出”MVC(撤回 MVC 上的所有 VTV)。通常出于以下原因排出 MVC:
MVC 报告或 Display 显示 MVC 的数据检查错误。VSM 不迁移至 MVC,您应将其从 MVC 池中移除。
MVC 报告或 Display 显示 MVC 的数据检查错误以外的错误。
存储类或命名 MVC 池不再处于使用状态,您希望移除或重新使用关联的 MVC。
要选择要排出的 MVC,您可以指定以下参数之一:
MVCid,用于按卷序列号排出一个或多个 MVC。
MVCPOOL,用于排出命名 MVC 池中的 MVC。有关命名 MVC 池的更多信息,请参见《ELS Command, Control Statement, and Utility Reference》。
STORCLAS,用于排出存储类中的 MVC。有关存储类的更多信息,请参见《ELS Command, Control Statement, and Utility Reference》。
可以使用 MVCDRain 覆盖 CONFIG RECLAIM CONMVC 设置。可以从每个主机运行 MVCDRain,这将在该主机上启动数量与 CONMVC 值相等的排出任务。这些排出任务可以与其他主机启动的排出任务同时运行。
另外,还要注意以下几点:
对于 VMVC,具有 EJECT
参数的 MVCDRAIN
会物理删除 VTV。
注意:
如果您使用DRCHKPT
实用程序和/或 CONFIG GLOBAL PROTECT
参数来保护 VMVC 的 CDS 备份内容,指定 MVCDR EJECT
将验证 CDS 备份的 VMVC 内容。对于 VMVC 和 MVC,不带 EJECT
参数的 MVCDRAIN
不会删除 VTV,但会更新 CDS 记录以便不在 VMVC/MVC 上显示 VTV。
有关更多信息,请参见《ELS Command, Control Statement, and Utility Reference》。
MVCMAINT 是 VSM 领域中同样方便的工具,其参数描述了其功能:
首先,MVC 卷序列号(范围、列表、单个卷序列号)或 MANIFEST 是您的两个 MVC 选择条件。MVC 卷序列号是有意义的,但为何 MANIFEST 也有意义?运行 EXPORT 时,将创建清单文件(MVC 及其包含的 VTV 列表),将一个系统中的 MVC 移动到另一个系统时,您可能需要执行该操作。将 MVC 导入到新系统中时,如果这些 MVC 以只读模式开始其新的生命周期,这可能是个好主意,因此在您可以正确定义这些 MVC 之前,不会覆写这些 MVC。
READONLY(ON 或 OFF)。请参见上一个项目。此外,还记得有关将 MVC 添加到池中的介绍吗?您可能需要将其以暂存状态装入 ACS,但有些企业会以非暂存状态引入所有项目,然后再加以整理。当您需要使新 MVC 成为可写入 MVC 时,可以使用 MVCMAINT READONLY(OFF) 工具。
LOST(ON 或 OFF)。MVC 是如何丢失的?例如,MVC 可能会丢失吗?不管您信不信,MVC 可能会丢失。例如,如果 VTCS 启动的 MVC 挂载无法完成(与完成但有错误相反),VTCS 会在 CDS 中将 MVC 标记为“丢失”并取消其优先权。
会从替代 MVC 中撤回驻留在“丢失的”MVC 上的复用 VTV。除非没有其他有效的 MVC,否则 VTCS 不会尝试使用“丢失的”MVC 进行迁移。成功挂载处于“丢失”状态的 MVC 后,会从 MVC 记录中删除“丢失”状态。
如果您知道 MVC 未真正丢失,应怎么办?答案:您可以使用 MVCMAINT 关闭 LOST 状态。
MVCMAINT 有一个有趣的用法,值得介绍一下。如果您有临时处于手动模式的 LSM,应怎么办?您可能需要(临时)在该 LSM 中取消 MVC 选择的优先权,可以使用 LOST(ON) 执行该操作。然后,当 LSM 重新处于自动模式时,使用 LOST(OFF) 逆向执行该过程。
ERROR(ON 或 OFF)。MVC 可能由于多种原因错误地进入错误状态,例如:
VTCS 不将挂载在 RTD 上的卷识别为 MVC。这可能是由某个 MVS 作业覆写 MVC 导致的。确定 MVC 发生了什么。如果 MVC 不再包含有效的 VTV 数据,则重新初始化卷并将其返回到 MVC 池中。
MVC 不是可写入的,这可能是由拇指滚轮设置为只读导致的,也可能是由安全软件包不允许 VTCS 写入卷导致的。重置拇指滚轮,或更改安全软件包中的规则,以便允许写入 MVC。
检测到错误的块 ID,您必须 (VTCS) 审计 MVC 以尝试更正该情况。
按照所述更正错误情况后,使用 MVCMAINT 将 MVC 状态重置为 ERROR(OFF)。
EJECT(ON 或 OFF)指定 MVC 的“逻辑弹出”状态。如何设置该状态以及您为何可能需要更改该状态?如果您使用 MVCDRAIN 显式排出某个 MVC,则可能因为您认为介质有错误,因此通过设置“逻辑弹出”状态来取消其优先权。然后您实际弹出该 MVC,运行一些测试,发现其是正常的,然后重新将其装入。此时,使用 MVCMAINT) 设置 EJECT(OFF)。
接下来,您具有一组特定于 T9840/T9940 介质的 MVC 属性,这些属性都具有 ON/OFF 切换。
WARRANTY。VTCS 还会检测介质保修到期并将 WARRANTY 设置为 ON。或者,您也可以使用 SMF、LOGREC 数据或您的 MVC 和 VTV 报告检测生命周期即将结束的 MVC 并使用 MVCMAINT 手动设置 WARRANTY ON。知道保修已到期可使您在发生介质生命周期结束(请参见下一个项目)之前计划介质更换。如果您知道某个 MVC 被错误地标记为保修到期,应怎么办?答案:使用 MVCMAINT 重置保修到期状态。
RETIRED。VTCS 还会自动检测到介质生命周期结束并将 RETIRED 状态设置为 ON。同上,您可以使用 SMF、LOGREC 数据或您的 MVC 和 VTV 报告检测生命周期即将结束的 MVC 并使用 MVCMAINT 手动设置 RETIRED ON,或针对错误地标记为报废的 MVC 将状态重置为 RETIRED OFF。
VTCS 会自动检测到无效的介质信息区域 (Media Information Region, MIR) 并将 INVLDMIR 状态设置为 ON。可以使用通过操作面板(针对传输)获取的实用程序或使用通过 MPST 获取的实用程序恢复 MIR。重新创建 MIR 之后,可以使用 MVCMAINT 针对 MVC 设置 INVLDMIR OFF。
注:
运行 MVCMAINT 还会生成受 MVCMAINT 作业影响的卷的 MVC 报告。MEDVERfy
实用程序通过验证在 MVC 或 VMVC(仅 ELS 7.1 和 VLE 1.2 及更高版本)上是否可以读取 VTV 数据来执行介质验证 (Media Verification, MV)。对于 VLE,MEDVERfy
确保删除了重复数据的 VMVC 可进行“重构”。
该实用程序报告通过验证或验证失败的 MVC 并生成 XML 输出。有关 MEDVERfy
实用程序的更多信息,请参见《ELS Command, Control Statement, and Utility Reference》。
以下各节显示了针对 MV 使用 MEDVERfy
实用程序的示例。
MEDVERFY MVC(VMC000)
在此示例中:
MEDVERfy
选择单个 VMVC。
MAXMVC
默认值为 99。
CONMVC
默认值为 1,因此一次仅处理一个 MVC。
未指定任何超时。
MEDVER MVCPOOL(MP1)
在此示例中:
MEDVERfy
选择 MVC 池 MP1
中的 MVC 进行处理。
未指定 FREQency
并且 MAXMVC
默认值为 99,因此 MEDVERfy
根据上次验证的时间选择 99 个最佳的 MVC 候选对象。
CONMVC
默认值为 1,因此一次仅处理一个 MVC。
未指定任何超时。
您可以根据需要对 VTSS 执行的最主要的操作是使用 VTCS Vary VTSS
命令或实用程序将 VTSS 更改为联机、脱机或停顿状态。当您将 VTSS 更改为脱机或停顿状态时,始终要知道您所执行的操作以及执行该操作的原因。原因可能是 VTSS 需要维护或您要将其从配置中移除,“查找和修复 VTCS 问题”中对此进行了介绍。
不过,以下图表首先向您显示了将 VTSS 更改为其支持的每个模式时会发生什么(以及您为何应在可能的情况下针对 OFFline 使用 QUIESCED)。
指定的 Vary VTSS 参数 | VTSS 最初状态 | VTSS 下一状态 |
---|---|---|
ONline |
Online Pending-处于联机暂挂状态,联机进程已启动,但尚未在所有主机上完成。 |
Online-处于联机状态,VTSS 联机且可用并接受前端和后端工作。如果 VTSS 以前脱机,则现在会联机,VTCS 发出建议 VTSS 审计的警告消息。 |
QUIESCED |
Quiescing-处于正在停顿状态,VTCS 不会将任何 DD 分配转向 VTSS,VTSS 仍接受暂挂挂载以允许长期运行且具有 unit=aff 链的作业完成。当所有 VTD 不再处于使用状态(未在 MVS 上分配其 UCB)时,VTSS 将进入停顿状态。处于正在停顿状态,VTSS 继续接受和处理后端工作,例如迁移、撤回和审计。 |
Quiesced-处于停顿状态,VTSS 继续接受和处理后端工作,例如迁移、撤回和审计。即,您可以使用撤回和迁移命令和实用程序执行这些使用停顿 VTSS 的操作。 |
OFFline |
Offline Pending-处于脱机暂挂状态,脱机进程已启动,但尚未在所有主机上完成。VTCS 立即关闭 VTSS 并中断和清除所有活动任务并清除所有排队的任务。VTSS 服务器任务终止并不再接受新前端和后端工作。VTCS 创建新的 VTV 并仅在替换 VTSS(如果可用)上挂载/卸载现有 VTV。 |
Offline-处于脱机状态,VTSS 在所有主机上脱机并且不接受前端或后端工作。 如果 VTV 的某个副本驻留在脱机 VTSS 上和 MVC 上,并且某个作业需要该 VTV,则 VTCS 会自动将 VTV 撤回到替换 VTSS(如果可用)。 |
注:
在客户机/服务器环境(MVS/CSC 和 LibraryStation 或客户机主机上的 SMC/HTTP)中,VTCS 无法确定长期运行的作业在客户机主机上是否是活动的。因此,VTSS 进入脱机状态之后,您应仍 (a) 显式将其 VTD 更改为在 MVS 上脱机或 (b) 确保客户机主机上的虚拟磁带活动已停止。在群集 VTSS 或跨 TapePlex 复制 (Cross-TapePlex Replication, CTR) 配置中,应将 VTSS 的 Clink 更改为脱机以停止复制和电子导出处理。
在维修 VTSS 之前,按以下所述停顿 VTSS:
在每个主机上将 VTSS VTD 更改为脱机。
在每个主机上等待所有设备脱机。请注意,在不再分配 VTD 之前,VTD 不会执行脱机过程。如果长期运行的作业正在使用 VTD,则必须等待该作业完成或取消该作业。
从定义了命名 VTSS 的任何 VTCS 系统中更改 VTSS QUIESCED。
在每个 VTCS 系统上等待指示 VTSS 已停顿的消息 SLS6742I。
您也可以选择迁移 VTSS 中的数据。
从定义了命名 VTSS 的任何 VTCS 系统中更改 VTSS OFFLINE。
在每个 VTCS 系统上等待指示 VTSS 已脱机的消息 SLS6742I。您现在可以维修 VTSS 了。
以下是移除 VTSS 的情形:您有两个独立的 VSM 系统,其中一个 VSM 系统的工作负荷在增大,另一个 VSM 系统的工作负荷在减小。解决方案:将某个 VTSS 从系统 A 中移除并将其置入系统 B。安装 ELS 中介绍了如何添加 VTSS,因此本节仅限于介绍移除 VTSS 时所应执行的操作。
移除 VTSS:
在移除 VTSS 之前,执行以下操作:
在删除之前,您无需清空 VTSS。您真正需要确保的是已完全迁移所有 VTV。还要考虑更改其他参数(例如 TAPEREQ 语句),以便不会将新工作路由至已移除的 VTSS。
如果从 VTSS 中移除一个设备类型/ACS 组合的所有内容,还应确保首先完全迁移所有 VTV。同上,考虑更改其他参数以反映更改后的 VTSS 迁移功能(例如管理类,管理类指向指定 ACS 和介质的存储类)。
将 VTSS 更改为停顿状态。
在其脱机之后,继续执行步骤 3。
移除 VTSS,然后重新运行 CONFIG 以将其逻辑移除。
下面显示了样例 JCL,该样例 JCL 运行 CONFIG 以将配置更新为拒绝对您从配置中物理移除的 VTSS2 的主机访问。在该示例中,您为 VTSS2 指定 VTSS 语句(不带参数),以拒绝对该 VTSS 的主机访问。
//UPDATECFGEXEC PGM=SLUADMIN,PARM='MIXED' //STEPLIBDD DSN=hlq.SEALINK,DISP=SHR //SLSCNTLDD DSN=FEDB.VSMLMULT.DBASEPRM,DISP=SHR //SLSCNTL2DD DSN=FEDB.VSMLMULT.DBASESEC,DISP=SHR //SLSSTBYDD DSN=FEDB.VSMLMULT.DBASETBY,DISP=SHR //SLSPRINTDD SYSOUT=* //SLSINDD * CONFIG GLOBALMAXVTV=32000MVCFREE=40 RECLAIMTHRESHLD=70MAXMVC=40 START=35 VTSSNAME=VTSS1 LOW=70 HIGH=80 MAXMIG=3 RETAIN=5 RTDNAME=VTS18800 DEVNO=8800 CHANIF=0A RTDNAME=VTS18801 DEVNO=8801 CHANIF=0I RTDNAME=VTS18802 DEVNO=8802 CHANIF=1A RTDNAME=VTS18803 DEVNO=8803 CHANIF=1I RTDNAME=VTS18811 DEVNO=8811 CHANIF=0E RTDNAME=VTS18813 DEVNO=8813 CHANIF=1E VTDLOW=8900 HIGH=893F VTSSNAME=VTSS2
本节包含您最有可能必须按需执行的任务:删除暂存 VTV 和更改 VTV 属性。
注:
如果由于处理 SET VOLPARM 或 CONFIG MVCVOL 而从配置中删除 VTV,则:您不能在配置中重新输入卷序列号作为 MVC。
请勿对本机 HSC 磁带使用卷序列号。
消息 SLS6944I 指示已删除的 VTV 数。
可以通过两种方法删除暂存 VTV:
按策略,通过对 VTV 的管理类指定 DELSCR(YES) 并使用 HSC 或 LCM 暂存同步以执行实际暂存。
对于特定的任务,通过使用 DELETSCR 实用程序。DELETSCR 从 VTSS 中删除暂存 VTV 并从 MVC 取消任何迁移的 VTV 的链接。会将删除的 VTV 标记为非初始化,但保留版本信息。
安装 ELS 中介绍了删除暂存 VTV,因此接下来的信息介绍“按需”版本。
注意以下警告:
注意:
使用 DELETSCR 删除暂存 VTV 时,这些 VTV 上的任何数据都将消失并且无法恢复!删除 VTV 不是您因无事可做而执行的操作。如果您必须手动删除暂存 VTV,那是因为您遇到了中的情形所显示的困境。
要防止通过操作员命令无意中执行了 VTV 删除,DELETSCR 是唯一的 SLUADMIN 实用程序,具有以下功能:
可以按卷序列号(单个卷序列号、列表或范围)、管理类或 HSC 暂存池指定 VTV。使用 MVC 和 VTV 报告,您应该已想出确定候选对象并应用对应的 DELETSCR 选项的最佳方法。您只能指定一个选项 (VTVid、MGMTclas 或 SCRpool),如果不指定任何选项,DELETSCR 将删除所有符合条件的 VTV。这可能是您所需要的,但在您执行该方法之前请三思。
强制性的 NOTREF 参数指定从引用 VTV 开始的天数 (1-999)。NOTREF 是有效的宽限期;不会删除在指定的宽限期内引用的任何 VTV。
提供了方便的(可选) MAXVTV 参数,该参数指定 DELETSCR 删除的 VTV 的最大数量。请注意,这是最大值,不是目标。如果您在非高峰期间主动运行 DELETSCR,则可能不需要考虑 MAXVTV。如果您遇到麻烦,您当然需要关注该参数。
请注意,MAXVTV 的范围是 0-999。如果指定 0,会怎么样?在这种情况下,DELETSCR 不会删除任何 VTV,但摘要报告显示在您运行 DELETSCR 时已删除了多少 VTV(即,该报告仅是一个快照)。
最后,您可以通过标准或详细(通过指定 DETAIL 参数)DELETSCR 报告查看工作的结果。
VTVMAINT 是另一个方便的工具(这次是用于 VTV 维护),该工具执行以下操作:
按卷序列号(您选择的范围、列表或单个卷序列号)选择 VTV。
从 MVC 取消 VTV 的链接,因为如果您按“更改 VTV 管理类并从 MVC 取消 VTV 的链接”中所述更改 VTV 的管理类,您可能需要执行该操作。
更改 VTV 的管理类,当您希望以不同的方式管理 VTV 时执行该操作。可以通过其他方法执行该操作,但最佳的工具无疑是 VTVMAINT,如“更改 VTV 管理类并从 MVC 取消 VTV 的链接”中所述。
在脱机 VTSS 中逻辑卸载指定的 VTV。“在脱机 VTSS 中逻辑卸载 VTV”中对其进行了最佳介绍。
“管理通过跨 TapePlex 复制 (Cross-TapePlex Replication, CTR) 复制的 VTV”。
注:
请不要忘记,运行 VTVMAINT 还会生成 VTVMAINT 作业影响的卷的 VTV 报告。可以使用 VTVMAINT 更改 VTV 的管理类。如果新管理类指定不同的存储类,则 VTV 在 MVC 上的当前位置是不正确的。以下过程介绍如何使用 VTVMAINT 更改 VTV 的管理类和存储类。
更改 VTV 的管理类并取消其链接:
撤回 VTV。
VTV 必须驻留在 VTSS 上才能在步骤 2 中使取消链接成功。
使用 VTVMAINT ULINKMVC 从其所位于的 MVC 中取消 VTV 的链接。
使用 VTVMAINT MGMTclas 分配新的管理类。
重新迁移 VTV 以便将其放置在正确的 MVC 上,或根据需要参见使用 RECONcil 更改 VTV 存储类 以了解将 VTV 移动到 MVC 的过程。
如果在 VTSS 脱机时挂载了某个 VTV 并且 MVC 上存在该 VTV 的一个副本,则 VTCS 不会将迁移的 VTV 撤回到替代 VTSS,因为该 VTV 在脱机 VTSS 上处于挂载状态。在这种情况下,您可以使用 VTVMAINT 在脱机 VTSS 中逻辑卸载该 VTV(关闭 CDS 中的“挂载”位),然后将该 VTV 撤回到替代 VTSS。VTCS 在 SMF 子类型 14 记录的 SMF14STA 字段中记录每个成功的 VTV 卸载。VTVRPT (UNAVAIL) 选项报告脱机 VTSS 中不可用的 VTV 的状态。有关更多信息,请参见《ELS Command, Control Statement, and Utility Reference》。
除非您完全确定该 VTV 的 MVC 副本(如果有)的内容与不可用的 VTV 相同,否则请勿在脱机 VTSS 中卸载不可用的 VTV!否则,您会面临将具有低版本数据的 VTV 撤回到替代 VTSS 的风险!例如,对为读取而挂载的 VTV 而言,卸载以撤回到替代 VTSS 可能是安全的。不过,对为写入而挂载的 VTV 而言,卸载可能是不安全的,因为该 VTV 已经过更新,因此 MVC 副本是低版本的。
以下过程提供了用于逻辑卸载 VTV 并从其他 VTSS 访问该 VTV 的一般步骤。
逻辑卸载 VTV 并从其他 VTSS 访问该 VTV:
使用以下命令将 VTSS 更改为在 VTCS 上脱机:
VT VARY VTSS(name) OFFLINE
如果 I/O 是活动的而 VTSS 失败,则 MVS 应限制 VTD 并从 MVS 的角度卸载所有挂载的 VTV。不过,如果在 VTSS 实际卸载任何挂载的 VTV 之前 与 VTSS 的通信失败,这些 VTV 可能仍在 VTCS 上联机。因此,首先需要将 VTSS 更改为在 VTCS 上脱机。
卸载 VTV(MVS 角度)。
如果 MVS 仍将该 VTV 视为在脱机 VTSS 上挂载,则无法在其他 VTSS 中的 VTD 上重新挂载该 VTV。执行以下操作之一:
使用 MVS UNLOAD 命令卸载 VTV。
使用 VARY OFFLINE 将挂载了该 VTV 的 VTD 更改为脱机,这也会卸载该 VTV。
运行 VTVMAINT(指定脱机 VTSS 和您要逻辑卸载的 VTV)。
例如,要在脱机 VTSS01 上逻辑卸载 VTV VV6823、VV6825 和 VV6688,请在 JCL 中编码以下SLSIN DD 语句:
VTVMAINT DISMOUNT VTV(VV6823,VV6825,VV6688) VTSS(VTSS01)
如果存在联机 VTSS 可以访问的已卸载 VTV 的迁移副本,则现在可以使用该 VTSS 访问这些 VTV。
注意:
如果已修改脱机 VTSS 上挂载的 VTV 副本,但未进行迁移,则撤回到替代 VTSS 上的 MVC 副本不是当前的!因此,Oracle 强烈建议您不要撤回这些非当前的 MVC 副本!提示:
当脱机 VTSS 已准备好重新联机时,Oracle 强烈建议您在运行使用 VTSS 的生产作业之前审计 VTSS。还要确保您在发出 VTSS VARY ONLINE 命令之前清除所有受限制的 VTD 情况。可以使用 VTVMAINT
更改通过 CTR 复制的 VTV 的状态,如下所示:
使用 VTVMAINT OWNRPLEX
更改 VTV 的所属 TapePlex。
使用 VTVMAINT DELEXpot
删除引用 VTV 的 TapePlex 的名称。
使用 VTVMAINT ADDEXpot
添加引用 VTV 的 TapePlex 的名称。
有关更多信息,请参见《ELS Disaster Recovery and Offsite Data Management Guide》。
如“更改 VTV 管理类并从 MVC 取消 VTV 的链接”中所述,可以使用 VTVMAINT 更改 VTV 的管理类,这当然也会更改其存储类。或者,如果您要将一个存储类中的 VTV 显式移动到另一个存储类,应怎么办?答案:使用 RECONcil。
在提交您的首个 RECONcil 作业(仅 SLUADMIN 实用程序)之前,确定您为何要更改 VTV 的存储类。基本上有三种原因:
如上,您要显式更改 VTV 的管理类/存储类。
VTV 位于错误的介质上、位于错误的 ACS 中或同时发生这两种情况。
ACS 在很长一段时间不可用,然后重新使其联机。在这种情况下,首先针对受影响的 VTV 更改 MGMTclas 语句上的 MIGpol 参数,以指向不同的 ACS(和介质(如果需要))。当原始 ACS 重新联机时,更改 MGMTclas 语句上的 MIGpol 参数,以指向原始 ACS,然后运行 RECONcil,指定更新的 MGMTclas(或 STORclas)语句以将 VTV 移动到原始 ACS。
请注意,该讨论仅涉及使用 RECONcil 调节 VTV 错误的存储类(错误的 MVC 介质、ACS 位置或两者)。如果您曾需要将其数据被访问的频率现在更低的 VTV 从访问中心介质(如 T9840 磁带)移动到存储中心介质(如 T9940 磁带)以及扩展存储 ACS 或异地,应怎么办?在这种情况下,通常使用 MGMTCLAS 语句的 ARCHAge/ARCHPol 参数设置归档策略,然后在超过 ARCHAge 值以及撤回和重新迁移该 VTV时会根据 ARCHPol 规范自动发生 VTV 移动。
因此,自动归档策略与自动迁移类似。这两者都会随着时间的推移而发生,如果一个或多个 VTV 确实处于错误的位置,时间正是您所不具有的。在这种情况下,请使用 RECONcil。
使用 RECONcil 更改 VTV ACS/介质:
要选择要进行验证的 VTV(即,这些 VTV 是否需要调节?),您可以指定以下 RECONcil 参数之一:
STORclas-指定一个或多个存储类。在这里,RECONcil 执行以下操作:
查找指定的存储类的 ACS 和介质定义。
扫描当前位于存储类中的 MVC。MVC ACS 和介质是否与存储类定义相匹配?如果不匹配,请列出有错误的 MVC/VTV。
MVC-指定 MVC 列表或范围。RECONcil 执行以下操作:
确定指定的 MVC 的实际 ACS 和介质。
实际的 MVC ACS/介质是否与 MVC 的存储类定义相匹配?如果不匹配,请列出有错误的 MVC/VTV。
MGMTclas-指定一个或多个管理类。RECONcil 执行以下操作:
查找在 MGMTclas MIGpol 参数上指定的 ACS 和介质定义。
扫描当前位于指定的管理类中的 VTV。VTV 是否位于具有与 MGMTclas MIGpol 规范相匹配的 ACS/介质的 MVC 上?如果不是,请列出位于有错误的 MVC 上的 VTV。
VTV-VTV 列表或范围。RECONcil 执行以下操作:
确定指定的 VTV 的管理类。
查找在 MGMTclas MIGpol 参数上指定的 ACS 和介质定义。
扫描当前位于指定的管理类中的 VTV。VTV 是否位于具有与 MGMTclas MIGpol 规范相匹配的 ACS/介质的 MVC 上?如果不是,请列出位于有错误的 MVC 上的 VTV。
首次运行 RECONcil 时,接受默认设置,这样会仅生成一份报告,正如您想象的那样,不会执行数据移动,仅报告为调节候选对象的 VTV。
注意:
由于调节 VTV 可能是资源密集型过程,因此 Oracle 强烈建议您首先在不使用 MOVEVTV 的情况下运行 RECONcil,然后在指定 MOVEVTV 之前根据需要调节作业。如果需要,调整 RECONcil 作业。
例如,如果在步骤 2 中运行报告,该报告看起来您将长时间进行调节,则考虑执行以下操作:
在非高峰处理期间运行 RECONcil,与您执行需求 MVC 空间回收类似。
使用 RECONcil 实用程序参数覆盖 CONFIG RECLAIM THRESHLD、MAXMVC 和 CONMVC 设置以优化调节性能。
在 ELAPSE 参数中以分钟为单位指定调节的最长时间。
注:
有多个影响调节的限制因素(例如 MAXMVC 和 ELAPSE)。VTCS 执行最严格的限制因素。例如,如果您运行 RECONcil 并指定 ELAPSE 为 5 个小时,MAXMVC 为 10 并且 VTCS 在一个小时内调节 10 个 MVC,则 VTCS 在 ELAPSE 值失效之前终止调节。还提供了 RECONcil POLICYdd 选项,该选项在 ARCHive 实用程序上也可用,可以是有用的诊断工具。POLICYdd(强制仅生成一份报告)指向包含一组替代 MGMTclas 语句的文件。
提示:
这本质上是一个有价值的“假设分析”工具,即如果您更改了更改 VTV 管理类并从 MVC 取消 VTV 的链接 中介绍的某些 VTV 管理类(包括其存储类规范),然后运行 RECONcil,这看起来是什么样的?现在,在您实际更改 VTV 的管理类之前,就可以得到答案。注:
除非您指定 POLICYdd 参数,否则 VTCS 和 HSC 必须是活动的才能处理 RECONcil 请求。您已完成了所需的所有“假设分析”、微调和非高峰安排。
现在是时间实施了。下面显示了运行 RECONcil 的示例 JCL:
调节管理类 LOCALPROD1 和 LOCALPROD2 中的 VTV。
对于 RECONcil 作业,将 MAXMVC 设置为 60,CONMVC 设置为 8,ELAPSE 设置为 60。
//RECONCIL EXEC PGM=SLUADMIN //STEPLIBDD DSN=hlq.SEALINK,DISP=SHR //SLSPRINTDD SYSOUT=* //SLSINDD * RECON MGMT (LOCALPROD1,LOCALPROD2) MAXMVC(60) CONMVC(8) ELAPSE(360) MOVEVTV
当然,您会获取一份操作后的 RECONcil 报告,该报告会告诉您处理过程是否顺利,因此您可以重新调整并根据需要重新运行该过程。
可以使用 LOGUTIL FOR_LOSTMVC
语句恢复驻留在丢失或损坏的 MVC 上的 VTV。LOGUTIL FOR_LOSTMVC
语句是如何工作的,您如何最有效地使用该语句?
FOR_LOSTMVC
实用程序扫描 CDS 和日志文件结构(如有必要)以确定丢失或损坏的 MVC(您指定其卷序列号)上的所有 VTV,并确定从替代 VTV 副本进行恢复的方法(如表 5-2 中所述)。LOGUTIL FOR_LOSTMVC
生成一份报告,该报告显示丢失或损坏的 MVC 上存在的所有 VTV 和对其进行恢复的方法,以及每个丢失或损坏的 MVC 的摘要信息。
替代 VTV 副本类别 | 恢复过程 |
---|---|
类别 1:当前驻留在 VTSS 上。 |
从驻留的副本进行恢复。如果您请求了恢复命令,将生成 |
类别 2:当前链接到一个或多个替代 MVC 副本。 |
基于四个因素从最佳替代 MVC 进行恢复:
如果您请求了恢复命令,将生成 |
类别 3:已进行跨 TapePlex 复制。 |
使用遇到的第一个包含 VTV 副本的远程 TapePlex 恢复 VTV。 如果您请求了恢复命令,将生成 |
类别 4:以前链接到一个或多个可能仍包含 VTV 数据的 MVC 副本。 |
选择以前链接的 MVC 之一作为恢复 MVC。在日志文件中找到了这些 MVC 副本,这些 MVC 副本可能仍包含 VTV 的副本。必须审计选择的恢复 MVC。根据与替代 MVC 相同的因素,选择用于执行恢复操作的以前链接的最佳 MVC 副本。 如果您请求了恢复命令,将生成 针对 |
类别 5:不可恢复。 |
不可恢复,副本仅存在于丢失或损坏的 MVC 上。 |
注:
如果您请求了恢复命令,还将针对类别 1、2、3 和 4 生成MVCMAINT
命令。这些语句将丢失或损坏的 MVC 标记为只读和中断,以便不再选择这些 MVC 进行撤回或迁移。注:
在该过程中,JCL 示例不针对 CDS 副本显示 DD 语句,如果 HSC 是活动的并且您希望在运行 LOGUTIL 的系统上使用活动的 CDS,这些 CDS 副本是有效的。否则,您必须针对 CDS 副本指定 DD 语句。首先,仅使用丢失或损坏的 MVC 的卷序列号运行 LOGUTIL
FOR_LOSTMVC
命令。
例如,以下示例显示:
日志记录数据集为 LOGIN
。
注:
可以使用指定的伪LOGDD
运行 LOGUTIL FOR_LOSTMVC
,以允许在尚未激活 CDS 日志记录的系统上进行恢复。恢复限制为 CDS 中的数据,但如果所有 VTV 都驻留在替代 MVC 副本上或通过跨磁带复制导出,则恢复仍很有用。损坏的 MVC 的卷序列号为 DMV509
。
恢复命令记录在数据集 RECVCMD
中。
//JOBLOGR job (account),programmer,REGION=1024k //S1 EXEC PGM=SLUADMIN,PARM=MIXED //STEPLIB DD DSN=hlq.SEALINK,DISP=SHR //LOGIN DD DSN=FEDB.VSMLMULT.LOGFILE.OFFLOAD(-2),DISP=OLD // DD DSN=FEDB.VSMLMULT.LOGFILE.OFFLOAD(-1),DISP=OLD // DD DSN=FEDB.VSMLMULT.LOGFILE.OFFLOAD(0),DISP=OLD //RECVCMD DD DSN=FEDB.VSMLMULT.RECVCMD,DISP=(CATLG,DELETE), // UNIT=SYSDA,SPACE=(CYL,(1,1),RLSE), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=27920) //SLSPRINT DD SYSOUT=* //SLSIN DD * LOGUTIL LOGDD(LOGIN) FOR_LOSTMVC MVC(DMV509) COMMANDS(RECVCMD)
查看步骤 1 中的 LOGUTIL
FOR_LOSTMVC
报告。
选择您要恢复的 VTV 并运行 LOGUTIL
FOR_LOSTMVC
(指定您要从丢失或损坏的 MVC 中恢复的 VTV)。例如:
//JOBLOGR job (account),programmer,REGION=1024k //S1 EXEC PGM=SLUADMIN,PARM=MIXED //STEPLIB DD DSN=hlq.SEALINK,DISP=SHR //LOGIN DD DSN=FEDB.VSMLMULT.LOGFILE.OFFLOAD(-2),DISP=OLD // DD DSN=FEDB.VSMLMULT.LOGFILE.OFFLOAD(-1),DISP=OLD // DD DSN=FEDB.VSMLMULT.LOGFILE.OFFLOAD(0),DISP=OLD //RECVCMD DD DSN=FEDB.VSMLMULT.RECVCMD,DISP=(CATLG,DELETE), // UNIT=SYSDA,SPACE=(CYL,(1,1),RLSE), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=27920) //SLSPRINT DD SYSOUT=* //SLSIN DD * LOGUTIL LOGDD(LOGIN) FOR_LOSTMVC MVC(DMV509) VTV(DX009) COMMANDS(RECVCMD)
注:
如果您指定了未在丢失或损坏的 MVC 上的 VTV,将忽略该 VTV。如果您要恢复损坏的 MVC 上所有指定的 VTV,请继续执行步骤 3。
要恢复指定的 VTV,请运行在步骤 2 中指定的恢复数据集中的命令。
注:
应在运行 FOR_LOSTMVC
之后尽快运行恢复数据集中的命令(使用标准 SLUADMIN
JCL),以确保其准确性。
Oracle 建议您按以下顺序运行 COMMANDS
文件中的恢复命令:
所有 EEXPORT ULINKMVC
命令。
所有 MVCMAINT READONLY(ON)
命令。
所有 AUDIT
命令。
如果存在 EEXPORT ULINKMVC
或 AUDIT
命令,则重新运行 FOR_LOSTMVC
。执行新的运行之后,新生成的 COMMANDS
文件中应没有 EEXPORT
或 AUDIT
命令。如果有这些命令,则返回至步骤 a。
所有 MVCMAINT READONLY(ON) ERROR(ON)
命令。
所有 ULINKMVC
命令。
所有 RECALL
命令。
RECONcil
实用程序。
会为所有指定的丢失或损坏的 MVC(这些 MVC 存在于 CDS 中并至少具有一个合格的 VTV)生成 MVCMAINT
命令。MVCMAINT
命令针对丢失或损坏的 MVC 将只读和错误/中断位设置为打开,以防止分配这些 MVC 以进行撤回或迁移。每个 MVCMAINT
命令上最多包含大约 3000 个 MVC。
运行 RECONcil 实用程序以确保为每个 VTV 创建正确数量的 MVC 副本。
例如:
//JOBLOGR job (account),programmer,REGION=1024k //S1 EXEC PGM=SLUADMIN,PARM=MIXED //STEPLIB DD DSN=hlq.SEALINK,DISP=SHR //LOGIN DD DSN=FEDB.VSMLMULT.LOGFILE.OFFLOAD(-2),DISP=OLD // DD DSN=FEDB.VSMLMULT.LOGFILE.OFFLOAD(-1),DISP=OLD // DD DSN=FEDB.VSMLMULT.LOGFILE.OFFLOAD(0),DISP=OLD //RECVCMD DD DSN=FEDB.VSMLMULT.RECVCMD,DISP=(CATLG,DELETE), // UNIT=SYSDA,SPACE=(CYL,(1,1),RLSE), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=27920) //SLSPRINT DD SYSOUT=* //SLSIN DD * RECONCIL VTV(DX009)