2 启动 SMC

SMC 管理所有用于分配和消息处理的 MVS 接口,因此必须在发生磁带处理的每个 MVS 主机上作为一项任务启动。

SMC 在 HSC 和 MVS/CSC 上调用卷和磁带机信息。因此,HSC 或 MVS/CSC 可在与 SMC 相同的主机上处于活动状态,或者在远程主机上也启用了 SMC HTTP 服务器的情况下,本地 SMC 可以与在该远程主机上运行的 HSC 交互。

Oracle 建议按以下顺序启动 HSC 和 SMC:

  • 启动 HSC。

  • 在 HSC 初始化开始时,立即启动 SMC。

此建议的原因如下:

  • SMCCMDS 数据集中定义了 TapePlex 和关联的 HSC/VTCS 服务器。在初始化过程中,SMC 会尝试以 SMCCMDS 数据集中定义的顺序与单个 HSC/VTCS 服务器联系,以此建立与每个 TapePlex 的一个服务器绑定的通信。在此过程中,SMC 会绑定到每个 TapePlex 遇到的第一个活动服务器。对于每个没有活动服务器的 TapePlex,SMC 会为针对该 TapePlex 定义的每个服务器显示持久消息 SMC0260。SMC 会在服务器变成活动状态时删除这些消息,并且 SMC 会自动绑定到该服务器。要避免在 SMC 启动时的 TapePlex 通信绑定延迟:

    • 在启动 SMC 之前,确保 SMC SERVER 语句引用的主机经过 IPL,并且已完全初始化 TCP/IP 以便在这些主机上进行通信。

    • 对于 SMC SERVER 语句引用的主机,在 SMCPARMSSMCCMDS 中发出 HTTP START 命令作为这些主机的 SMC 启动参数的一部分。

    • 对于每个 TapePlex,至少在一个 TapePlex 的 SMC SERVER 语句引用的主机上启动 HSC/VTCS 和 SMC。

  • 如果您的配置包括了 VTCS 和 VLE 系统,则 VTCS 将使用 SMC 通信服务与 VLE 通信。如果在 HSC 初始化开始后立即启动 SMC,则可确保这些服务在 VTCS 尝试与 VLE 通信时对 VTCS 可用。

实施这些步骤将允许 SMC 启动处理尽快地每个 TapePlex 绑定。

要启动 SMC,必须创建并执行 SMC START 过程。本章将介绍这些任务。

注:

  • 有关 SMC 安装和安装后任务的信息,请参阅出版物安装 ELS

  • SMC HTTP 服务器组件是使用 SMC HTTP 命令启用的。有关此命令的更多信息,请参阅《ELS Command, Control Statement, and Utility Reference》。

创建 SMC START 过程

SMC START 过程指定 SMC 启动参数设置。可以在主机系统的过程库中创建此过程。

MVS START 命令执行此编录的过程,从而激活具有指定参数设置的 SMC。

以下示例展示了一个 SMC START 过程样例,其中包括 EXECSTEPLIBSMCPARMSSMCCMDSSMCLOGSYSTCPD DD 语句。

示例 2-1 SMC START 过程

//yourprocname PROC PRM=’WARM’
//stepname  EXEC PGM=SMCBINT,REGION=0M,TIME=1440,
//          PARM=’&PRM’
//*
//STEPLIB   DD DISP=SHR,DSN=your.els.exitlib
//          DD DISP=SHR,DSN=your.els.sea700.sealink
//*
//* The following dataset is optional
//*
//SMCPARMS  DD DISP=SHR,DSN=parmlib_name(parm_member_name)
//*
//* The following dataset is optional but recommended
//*
//SMCCMDS   DD DISP=SHR,DSN=cmdlib_name(cmd_member_name)
//*
//* The following datasets are optional
//*
//SMCLOG    DD DSN=log.file.name,UNIT=unit,RECFM=FB,
//             SPACE=(CYL,(primary-qty,secondary-qty)),
//             DISP=(NEW,CATLG,CATLG)
//*
//SYSTCPD   DD DSN=ddd.eee.fff(anyname) /* Optional TCPIP parms) */

yourprocname 的前四个字符指定 SMC 子系统名称(除非指定了 SSYS 启动参数)。建议值为 SMCx,其中 x 是任何有效的作业名称字符。

SMC EXEC 语句

EXEC 语句定义一般的 SMC 启动参数设置。

语法

下图展示了 SMC EXEC 语句语法:

图 2-1 SMC EXEC 语句语法

在环绕的文本中描述

参数

PARM=

定义传递到 SMC 初始化例程的参数列表。

执行参数必须用逗号分隔。用空格分隔参数会导致语法错误。

WARM

指定不重建 SMC 主控制块。这是正常操作的默认设置。

COLD

指定重建所有 SMC 控制块。此参数与 WARM 互斥。

注意:

除非 SMC 异常终止并且无法重新启动,否则不要使用此参数。

RESET

指定重置 SMC 的 MVS 子系统通信矢量表 (Subsystem Communications Vector Table, SSCVT) 中的活动子系统状态标志。此参数可以更正 SMC 异常终止的情况。此参数可以与 WARMCOLD 一起指定。

在 SMC 子系统处于活动状态并且正常运行时使用此参数会导致不可预料的结果。

J3NOSET

指示 JES3 系统不使用 JES3 磁带装置。指定此参数时,对分配的影响与针对 JES2 所述的相同。

SSYS

指定不同于 SMC START 过程的前四个字符的子系统 ID。SMC 会在初始化过程中搜索此子系统 ID。

subsystem 的长度必须是一至四个字符。

MSTR

指定 SMC 在 MSTR 子系统下(而不是在 JES 下)启动。

在指定此参数时,还必须执行以下操作之一:

  • 在 MVS Start 命令上使用 SUB=MSTR 启动 SMC 子系统。

  • 使用关键字格式将 SMC 子系统添加到 IEFSSNxx 子系统表。

注:

  • 采用 SETUP 环境的 JES3 不支持此参数。

  • 如果要在主 MVS 子系统下运行 SMC,包含 SMC START 过程的 PROCLIB 必须存在于主地址空间的 PROCLIB 串联中。该串联是在 SYS1.PARMLIB(MSTJCLxx) 中在 DD IEFPDSI 下定义的。

MAXRC

指定在超出指定的命令返回代码时,是否要终止 SMC 子系统初始化。如果不指定 MAXRC,则 SMC 子系统将始终尝试完成其初始化,不考虑任何启动命令失败的情况。这是默认行为。

nn 指定允许的最高返回代码。如果从 SMCPARMSSMCCMDS 数据集执行的 SMC 命令超出了此值,则将生成 SMC0236SMC0237 消息,SMC 将终止。允许的值为 0、4、8 和 12。

PLEXRC

指定是否要根据从自动发出的 RESYNC 命令返回的 TapePlex 的状态终止 SMC 子系统初始化。

如果不指定 PLEXRC,则 SMC 子系统将完成其初始化,不考虑 RESYNC 命令的结果。这是默认行为。

n 指定允许的 RESYNC 命令的最高返回代码。有效值为 0 和 4。

如果 SMC 无法与任何定义的 TapePlex 通信,则 SMC RESYNC 命令将设置返回代码 8;如果 SMC 可以与一个或多个(但不是全部)定义的 TapePlex 通信,则设置返回代码 4。

SMCPARMS 和 SMCCMDS 数据集

在 SMC START 过程中指定 SMCCMDSSMCPARMS DD 语句可标识包括要在 SMC 启动时处理的 SMC 命令设置的数据集。

至少,必须将 SMC TAPEPlex 命令包括在 SMCCMDS SMCPARMS 数据集中以定义 TapePlex。如果在 SMC 启动时未找到任何 TAPEPlex 命令,则 SMC 子系统将终止并生成一条错误消息。

SMC 首次与 HSC 主机通信时,此主机会采用在 SMCCMDSSMCPARMS 语句集中指定的 TapePlex 名称,并将其存储在 CDS 中。除非以后 SMC Set TapePlex 实用程序命令更改了此名称,否则 CDS 会保留该名称。

SMCCMDS

建议使用 SMCCMDS 数据集来指定可在启动后重新处理的 SMC 命令的设置。

可以随时从控制台发出 SMC READ 命令来重新处理此数据集。

SMCPARMS

建议使用 SMCPARMS 数据集来指定仅能在启动后处理的 SMC 命令的设置。这些命令是 CMDDefUSERMsg

可在此数据集中包括其他命令,但是,SMC READ 命令无法处理这些命令。

注:

  • 有关 HSC Set TAPEPlex 命令和 SMC READ 命令的更多信息,请参阅《ELS Command, Control Statement, and Utility Reference》。

  • 使用 POLicy 命令要求 TAPEPlexSERVer 命令在 POLicy 命令之前处理(POLicy 命令必须在 TAPEREQ 控制语句之前处理)。

  • TIME=1440 必须编码以确保 SMC 不会超时和终止。

SMCLOG 数据集

在 SMC START 过程中指定 SMCLOG DD 语句以定义用于 SMC 通信和命令日志记录的 SMCLOG 数据集。

当输入了 SMC LOG START 命令时才需要此语句,并且当输入了 SMC LOG TYPE 命令以选择 SMC 将要记录的特定类型的事件时才向此语句写入。

SMC 日志记录工具用于收集不容易重现的特定类型的错误的诊断信息。作为一项诊断收集技术,它收集的信息较少,但消耗的资源比 SMC TRACE 命令少得多。因此,它较适合在较长的一段时间里收集所有通信任务的诊断信息,而 SMC TRACE 工具则用于在单个作业或步骤上在较短的时间里使用。SMC LOG 命令仅应在 StorageTek 支持人员的指导下执行。根据所选的 SMC LOG TYPE 的数量和类型,使用 SMC 日志记录工具将导致 SMC 通信和子系统性能略有下降。

SYSTCPD 数据集

在 SMC START 过程中指定 SYSTCPD DD 语句以定义 SMC 作业的 TCP/IP 选项。

这 DD 语句标识用于获取由 IBM TCPIP.DATA 配置数据集定义的参数的数据集。有关更多信息,请参阅《IBM TCP/IP Customization and Administration Guide》。

执行 SMC START 过程

本节介绍了如何执行 SMC START 过程来启动 SMC 软件。

MVS START 命令

发出 MVS START 命令以执行 SMC START 过程并启动 SMC 软件。此命令将调用 SMC 子系统初始化例程。此例程确定哪些参数有效,执行任何必要的清理,并启动正常的 SMC 处理。

此外,还可通过 MVS START 命令上的 PARM= 提供与 SMC Start 过程的 EXEC 语句上的 PARM= 关联的参数。在 MVS START 上指定的 PARM= 会覆盖在 SMC START 过程中指定的 PARM=。有关参数介绍,请参见参数

语法

下图展示了 MVS START 命令语法:

图 2-2 MVS START 命令语法

在环绕的文本中描述

参数

STARTS

启动 MVS START 命令

smc-proc-name

指示 SMC START 过程成员的名称。