SET PROGRAM

更改 PROGRAM、MAPSET 或 PARTITIONSET 定义。

语法

警告系统命令功能强大,可提供有关系统状态的信息,并允许对系统进行更改。 系统命令只能由授权应用程序和用户使用。

通过指定 XCMD 系统初始化参数并确保事务的命令安全检查处于激活状态(在 TRANSACTION 资源定义中指定 CMDSEC(YES) 或在 CMDSEC 系统初始化参数中指定 ALWAYS),激活命令安全检查。

SET PROGRAM

读取语法图跳过可视语法图SET PROGRAM( data-value)CEDFSTATUS(CVDA)CEDFNOCEDFCOPY(CVDA)NEWCOPYPHASEINEXECUTIONSET(CVDA)DPLSUBSETFULLAPIJVMCLASS(data-value)JVMPROFILE(data-value)OPERATION(data-value)REPLICATION(CVDA)REPLICATORNOREPLICATORRUNTIME(CVDA)JVMNOJVMSHARESTATUS(CVDA)PRIVATESHAREDSTATUS(CVDA)DISABLEDENABLEDVERSION(CVDA)

条件: INVREQ , IOERR , NOTAUTH 和 PGMIDERR

NOHANDLE, RESP, 和 RESP2 是可以添加到所有 EXEC CICS 命令中的常用选项,用于处理错误条件。 命令语法图和选项说明中没有明确包含这些选项。 有关这些常用选项和 EXEC CICS 命令语法的信息,请参阅 EXEC CICS 命令格式和编程注意事项. 有关使用 CVDA 的更多信息,请参阅 CICS-值数据区 (CVDA)

此命令是线程安全的。

描述

SET PROGRAM 命令修改安装在 CICS 系统中的特定程序,映射集或分区集的定义。 所有这些资源都是装入模块,因此, CICS 对所有三个资源使用相同的 SET 命令。 为了避免混淆,术语 module 表示命令的对象,但该选项仅适用于可执行程序时除外。

不能将 SET PROGRAM 命令用于从 CICS 束定义和安装的 PROGRAM 资源。 如果尝试修改由 CICS 束安装的动态生成的 PROGRAM 资源,那么会发出 RESP2 值为 300 的 INVREQ 响应。
  • 您可以通过启用或禁用安装了这些资源的 BUNDLE 资源来控制动态生成的 PROGRAM 资源的状态。
  • 您可以使用 CICS Explorer 中的资源编辑器修改动态生成的 PROGRAM 资源的定义。 要更新定义,请按照.NET Framework 2.0 中的说明,用新版本替换 CICS bundle 的旧版本。 CICS 可单独更新单独部署或与平台一起部署的捆绑包。 如果 CICS bundle 是作为应用程序的一部分或与应用程序绑定一起部署的,则更新整个应用程序。

要使任务作为应用程序的一部分进行度量,您可以设置 PROGRAM 资源应用程序上下文中的 OPERATION 字段。 SET PROGRAM OPERATION 命令未编目,并且在 CICS的热重新启动时不会恢复。 支持此命令,以便您可以使用应用程序上下文进行试验,但它并非用于生产目的。 有关应用程序入口点和 PROGRAM 资源以及将应用程序上下文设置为任务的条件的信息,请参阅 应用程序入口点应用程序上下文

选项

CEDFSTATUS (cvda) (仅限程序)
指定在此程序在 EDF 下运行时执行诊断工具 (EDF) 要执行的操作。 此选项具有以下 CVDA 值:
CEDF
将显示 EDF 诊断屏幕。 如果程序是使用 EDF 选项转换的,那么将显示所有 EDF 屏幕。 如果它是使用 NOEDF 翻译的,那么仅显示程序启动和终止屏幕。
NOCEDF
未显示任何 EDF 屏幕。

不能为远程程序指定 CEDFSTATUS。

COPY (cvda)
指定下次请求模块时将使用程序的新副本。 LINKXCTLLOADENABLE和 BMS 命令可能会导致模块请求。 仅当模块当前未在使用 (NEWCOPY) 时,才能选择刷新该模块,或者在新版本的模块中对所有未来请求 (PHASEIN) 进行阶段处理。

不能为当前使用 HOLD 选项装入的任何模块指定 COPY 选项,也不能为定义为远程的任何程序指定 COPY 选项。

CICS 在您发出命令时不会装入模块,但会确保副本可用。 如果指定了 SHARED 选项,并且该模块位于链接装配区域中,那么 LPA 副本满足此要求。 否则, CICS 将搜索 DFHRPL 或动态 LIBRARY 并置,如果无法在其中找到副本,那么将返回 IOERR 异常。

对于在 JVM 服务器中运行的 Java™ 程序,不能使用此命令的 NEWCOPY 或 PHASEIN 选项来刷新程序。 要实现程序的新版本,请将旧版本的 CICS 束替换为更新的版本。 有关更多信息,请参阅 更新 JVM 服务器中的 OSGi 捆绑软件

对于从 CICS 束定义和安装的 PROGRAM 资源,不能使用此命令的 NEWCOPY 或 PHASEIN 选项来刷新程序。 要实现程序的新版本,请将旧版本的 CICS 束替换为更新的版本。 如果 CICS bundle 是作为应用程序的一部分或与应用程序绑定一起部署的,则更新整个应用程序。

此选项具有以下 CVDA 值:
新副本
仅当模块当前未在使用时,才会刷新该模块; 否则, CICS 将改为返回 INVREQ 异常。 您可以通过 INQUIRE PROGRAM 命令中的 RESCOUNT 选项来确定是否正在使用模块。 值为零表示程序未在使用中。
Phasein
无论模块是否正在使用,都将进行刷新。 如果是,那么正在使用的一个或多个副本将保留,直到它们不再使用为止。 刷新后发生的所有请求都使用新副本。
EXECUTIONSET (cvda) (仅程序)
指定是否将程序限制为只能运行 CICS API 的分布式程序链接 (DPL) 子集。 EXECUTIONSET 仅适用于可执行程序,并且仅当程序在本地运行时才管理 API。 当远程调用时,程序始终限于此子集; 即,当它们在 DPL 调用的程序的级别或更低级别运行时。 此选项具有以下 CVDA 值:
DPLSUBSET
程序始终是要限制的。 不能为 CICS 程序 (以 "DFH" 开头的程序) 指定此值。
FULLAPI
除非远程调用,否则不会限制该程序。
EXECUTIONSET 属性仅在以下情况下适用:
  • 与那些最先由事务授予控制权的程序相链接的程序,而不是与这些程序相链接的程序。
  • 当 REMOTESYSTEM 名称与本地 CICS 区域同名时。 其目的是在本地 CICS 环境中测试程序,就像它们作为 DPL 程序运行一样。
JVMCLASS (data-value) (仅限 Java 程序)
指定要由 JVM 控制的 Java 程序中主类的 255 个字符的名称。 如果在 RUNTIME 选项中指定 JVM ,请指定 JVMCLASS 值。 如果在 RUNTIME 选项中指定 NOJVM ,那么在程序运行时将忽略 JVMCLASS 选项中的任何值。
JVMPROFILE (data-value) (仅限 Java 程序)
指定要用于运行此 Java 程序的合用 JVM 的 JVM 概要文件的 8 字符名称。 当前在具有旧 JVM 概要文件的 JVM 中运行的此程序的任何实例都不受影响,并且可以完成运行。 不能为使用 JVM 服务器的 Java 程序设置此选项,因为 JVM 概要文件是在 JVMSERVER 资源上设置的。

在 CICS 中的任何地方使用 JVM 配置文件的名称时,必须使用与 z/OS UNIX 文件名称中相同的大小写字母组合输入。

操作 (data-value)
指定要将此程序定义为应用程序入口点的应用程序操作的 64 个字符的名称。 在运行时,当任务运行 PROGRAM 时,会将应用程序上下文从 PROGRAM 资源复制到任务的关联数据中。 此过程使任务能够作为应用程序的一部分进行度量。 如果以下条件适用,那么不能指定 OPERATION 选项:
  • PROGRAM 资源已设置为入口点,或者如果 EXEC CICS SET PROGRAM SPI 命令先前已将程序设置为入口点。
  • PROGRAM 资源是从 BUNDLE 资源的安装创建的。
  • PROGRAM 资源通过使用 BUNDLE modify 动词设置为入口点。
  • PROGRAM 资源是 CICS 或 CICSPlex SM 程序,即,它具有以 DFHEYUCJACJJ开头的名称。
  • PROGRAM 资源是远程资源,映射集或分区集。

要通知 CICS 不再将程序用作入口点,请为 OPERATION 选项指定空格字符的值。

程序 (data-value)
指定要更改的程序,映射集或分区集定义的 8 字符名称。
REPLICATION (cvda)
指定程序是否为复制器。 CVDA 值如下所示:
复制器
该程序是一个复制程序,具有对 AVAILABILITY 状态为 RREPL 的 VSAM 数据集的完全访问权。
非复制者
该程序不是复制程序,仅具有对 AVAILABILITY 状态为 RREPL 的 VSAM 数据集的读访问权。
RUNTIME (cvda) (仅限 Java 程序)
指定程序是否在 JVM 中运行。 此选项具有以下 CVDA 值:
JVM
该程序将在 JVM 中运行。 指定 JVMCLASS 值。
无 JVM
该程序不会在 JVM 中运行。 将忽略 JVMCLASS 选项中的任何值,并且更改后的程序的运行时环境未知,直到 CICS下次装入该程序时才确定其运行时环境。
SHARESTATUS (cvda)
指定下次需要新副本时 CICS 获取模块的位置。 新副本请求可以由显式请求 (例如 SET PROGRAM COPY) 或需要在 CICS 当前没有副本时发出的模块的命令生成。 此选项具有以下 CVDA 值:
私有
将从 DFHRPL 或动态 LIBRARY DD 语句上指定的并置库装入模块。
共享
要使用链接包区域副本 (如果有)。 否则,将装入模块,就像 SHARESTATUS 是 PRIVATE 一样。

不能为远程程序指定 SHARESTATUS。 将忽略为 Java 程序指定的任何值。

状态 (cvda)
指定模块是否可供使用。 此选项具有以下 CVDA 值:
DISABLED
模块将不可用。 不能禁用 CICS 程序 (以 DFH开头)。
ENABLED
该模块将可用。

对于定义为远程的程序,此选项仅在通过本地 CICS 系统调用程序时管理可用性; 它不会更改远程系统上的可用性。

对于通过 CICS 程序链接请求调用的程序,将采用 ENABLEDDISABLED 选项,但如果 Java 程序通过方法调用调用该程序,那么这些选项无效。

版本 (cvda)
返回一个 CVDA 值,该值指示针对 COPY 请求找到的副本 CICS 是否与当前副本不同。 仅当还指定了 COPY 选项时,才会返回值; 在其他情况下, CVDA 值保持不变。 为此, CICS 定义了 不同的 ,表示从 DFHRPL 或动态 LIBRARY 并置装入的副本切换到链接装配区域副本,反之亦然,或者从不同于当前副本的磁盘位置装入的副本。 SET PROGRAM 命令不适用于由 BUNDLE 资源安装的程序。 SET PROGRAM 命令具有以下 CVDA 值:
新副本
新副本不同。
OLDCOPY
新副本并不不同。 对于 Java 程序,将始终返回此值。

条件

INVREQ
RESP2 值:
1
对于以 DFH 开头的程序,指定了 DISABLED 或 DPLSUBSET,或者对于以 DFH, EYU, 或 CJACJJ 开头的程序,指定了 OPERATION。
2
STATUS 具有无效的 CVDA 值。
3
指定了 NEWCOPY ,并且 RESCOUNT 不等于零。
4
SHARESTATUS 具有无效的 CVDA 值。
5
COPY 具有无效的 CVDA 值。
6
为当前使用 HOLD 选项装入的模块指定了 COPY。
9
CEDFSTATUS 具有无效的 CVDA 值。
17 日
指定了对远程程序 (CEDFSTATUS , COPY , EXECUTIONSET , SHARESTATUS 或 OPERATION) 无效的选项。
18
指定了对映射集 (CEDFSTATUS , EXECUTIONSET 或 OPERATION) 无效的选项。
19
指定了对分区集 (CEDFSTATUS , EXECUTIONSET 或 OPERATION) 无效的选项。
20
EXECUTIONSET 具有无效的 CVDA 值。
22
RUNTIME 具有无效的 CVDA 值。
23
指定了 JVM ,但未提供 JVMCLASS。
25
JVMCLASS 包含嵌入空白或空 (x '00') 字符。
27
该选项对于在 JVM 服务器中运行的 Java 程序无效。
28 日
JVMPOOL 已废弃。
29 日
SET PROGRAM COPY (NEWCOPY) 对于在 JVM 服务器中运行的 Java 程序无效。
30
OPERATION 指定无效字符。
31 日
无法覆盖 OPERATION。
32
REPLICATION 具有无效的 CVDA 值。
300
指定了对 BUNDLE 资源安装的资源无效的操作。
301
您指定的操作对于从 CICS 束定义的 LIBRARY 装入的 PROGRAM 无效。
IOERR
RESP2 值:
8
指定了 COPY 选项或 RUNTIME (NOJVM) 选项,但 CICS 无法找到模块。
NOTAUTH
RESP2 值:
100
与发出任务关联的用户无权使用此命令。
101
未授权与发出任务关联的用户以此命令所需的方式访问此特定资源。
PGMIDERR
RESP2 值:
7
找不到程序,映射集或分区集。