禁用程序

终止或者修改用户出口的调用。

禁用程序

读取语法图跳过可视语法图DISABLE PROGRAM( data-value)ENTRYNAME( data-value)EXIT( data-value)EXITALLFORMATEDFPURGEABLESHUTDOWNSPISTOPTASKSTART

条件: INVEXITREQ 和 NOTAUTH

描述

DISABLE PROGRAM 命令会更改全局或与任务相关的用户出口的状态,从而逆转 ENABLE PROGRAM 命令中相应选项的影响。

您可以使用它来执行以下操作:
  • 除去调用特定出口的点
  • 使出口不可用于执行 (而不除去其作为出口的状态)
  • 将其定义作为出口完全删除。
DISABLE PROGRAM 命令上的选项对应于 ENABLE 命令上的选项:
  • ENTRYNAME 和 PROGRAM 标识要禁用的出口,并且您必须使用在定义该出口的 ENABLE 命令中执行的值的完全相同的组合。
  • EXIT , FORMATEDF , SHUTDOWN 和 TASKSTART 逆转了同名选项对 ENABLE PROGRAM的影响; 即,它们在指定的点关闭对出口的调用。
  • STOP 会逆转 START 的影响,使出口无法执行。
  • EXITALL 将完全删除定义,从而逆转创建出口的 ENABLE PROGRAM 的效果。 还可以删除与出口关联的工作区和装入模块。

有关 CICS® 出口的编程信息,请参阅 全局用户出口程序任务相关的用户出口程序; 您还应该在 出口相关命令中看到修改出口的命令的常规讨论。

注: 全局用户出口需要 STOP , EXIT 和 EXITALL 中的一个或多个,任务相关用户出口需要 STOP , EXITALL , TASKSTART , SHUTDOWN 和 FORMATEDF 中的一个或多个。

选项

ENTRYNAME (data-value)
指定要更改其状态的全局用户出口或与任务相关的用户出口的名称。 如果省略 ENTRYNAME ,那么 CICS 假定出口的名称与 PROGRAM 选项中给定的装入模块名称相同。 因此,必须在 DISABLE 命令上使用与在定义了出口的初始 ENABLE 命令上指定的相同的 ENTRYNAME 和 PROGRAM 值组合。
EXIT (data-value) (仅全局用户出口)
指定要从中取消关联此出口程序的全局用户出口点的名称。 它会导致 CICS 在此时停止调用出口,但本身不会导致 CICS 从虚拟存储器中删除关联的装入模块,即使不再在任何出口点使用该模块也是如此。 出口点名称的长度为 8 个字符。
扩展 ITALL
使 CICS 废弃出口的定义。 对于全局用户出口, EXITALL 从当前调用该出口的 所有 出口点取消该出口的关联。 如果可能,将从虚拟存储器中删除关联的装入模块。

对于与任务相关的用户出口,如果相关联的装入模块未被另一个出口使用,并且未在定义该出口的 ENABLE 命令中指定 ENTRY 选项,那么将从虚拟存储器中删除该模块。 如果出口拥有全局工作区,那么只要没有其他出口共享该工作区,就会释放该工作区。

EXITALL 意味着 STOP ,因此出口变得不可用于执行。 对于与任务相关的用户出口,您必须避免请求此功能,直到使用该出口的所有任务都已结束为止; 在该点之前 EXITALL 的结果不可预测。 这意味着对于任务开始,任务结束和关闭调用,当将调用所有与任务相关的用户出口并且从当前 TRUE 为自身发出 DISABLE EXITALL 命令时,调用的 TRUE 数不可预测。 如果需要刷新出口,那么 TRUE 应使用 STOP 选项禁用自身,并调用单独的任务以使用 EXITALL 选项发出 DISABLE。

FORMATEDF (仅与任务相关的用户出口)
指示不应调用出口来格式化 EDF 屏幕。 可以使用指定 FORMATEDF 的 ENABLE 命令在 EDF 点恢复调用。
程序 (data-value)
指定包含出口入口点的 装入模块 的 8 字符名称。 当未指定 ENTRYNAME 时,此名称也用作出口的名称; 请参阅 ENTRYNAME 选项。
可清除 (仅与任务相关的用户出口)
除去在与任务相关的用户出口中处于活动状态时从 CICS 等待中清除的能力。 可以使用指定 PURABLE 的 ENABLE 命令来开启此功能。
SHUTDOWN (仅与任务相关的用户出口)
指示不应在 CICS 关闭时调用出口。 您可以使用指定 SHUTDOWN 的 ENABLE 命令在关闭时恢复调用。
SPI (仅与任务相关的用户出口)
指定如果 INQUIRE EXITPROGRAM 命令指定 CONNECTST 和/或 QUALIFIER 选项,那么不再调用与任务相关的用户出口。
停止
指定将使出口不可用于执行,但将保持启用状态 (定义为出口)。 您可以使用指定 START 的 ENABLE 命令使出口再次可供执行。

调用已停止的任务相关用户出口时,调用代码将获取 AEY9 异常终止代码。 但是,全局用户出口没有相应的错误,因为 CICS 仅调用与出口点关联的出口,这些出口也可用于执行 (未停止)。

TASKSTART (仅与任务相关的用户出口)
指示不应在每个任务的开始和结束时调用出口。 您可以使用指定 TASKSTART 的 ENABLE 命令恢复这些调用。

条件

INVEXITREQ
DISABLE 命令的 INVEXITREQ 条件由 EIBRCODE 的第一个字节中的 X'80 ' 指示。 可以通过检查 EIBRCODE 的第二个和第三个字节来确定错误的确切原因,这些字节可以具有以下列表中显示的值。
X'808000 '
尚未向 CICS定义 PROGRAM 参数上指定的装入模块,或者装入模块不在装入库中,或者已禁用装入模块。 此外,将返回 RESP2 值 1。
X'804000 '
EXIT 的值不是有效的出口点。 此外,将返回 RESP2 值 2。
X'800200 '
未将 PROGRAM 值所标识的出口定义为出口。 此外,将返回 RESP2 值 7。
X'800100 '
ENTRYNAME 标识的出口未定义为出口。 此外,将返回 RESP2 值 8。
X'800080 '
出口当前由另一个任务调用 (请参阅注释)。 此外,将返回 RESP2 值 9。
注: 第二个和第三个字节中的 X'0080 ' 可能出现 INVEXITREQ 条件:
  • 如果在使用出口的任务由于出口中的 CICS 服务请求而临时暂挂时发出 DISABLE 请求。 此条件的正常操作是重试 DISABLE 请求。
  • 如果在另一任务正在使用出口但在另一任务控制块 (TCB) 下运行时发出 DISABLE 请求。 此条件的正常操作是重试 DISABLE 请求。
  • 当指定了带有 EXITALL 或 EXIT 的 DISABLE 请求,但出口已异常终止时。 在这种情况下,关联装入模块的使用计数仍大于零。 无法将出口与任何出口点取消关联,并且无法从虚拟存储器中删除装入模块。 但是,可以通过发出 DISABLE STOP 命令使出口不可用于执行。
NOTAUTH
RESP2 值:
100
未授权与发出任务关联的用户使用此命令。
101
未授权与发出任务关联的用户以此命令所需的方式访问此特定资源。

示例

  1. 以下示例使出口 EP2 不可执行。 但是,它不会将其与与其关联的出口点取消关联,也不会将其定义删除为出口。 可通过发出 ENABLE PROGRAM ('EP2') START 命令使其再次可用。
    EXEC CICS DISABLE PROGRAM('EP2') STOP
  2. 以下示例阻止在出口点 XTDREQ 上调用全局用户出口 ZX。 但是,仍定义了 ZX ,如果它与其他出口点相关联,那么仍会在它们处调用 ZX。
    EXEC CICS DISABLE ENTRYNAME ('ZX') PROGRAM('EP3')
    EXIT('XTDREQ')
  3. 以下示例将取消 EP3 与请求调用的所有点 (出口点 (对于全局用户出口); 任务启动和关闭等 (对于与任务相关的用户出口)) 的关联,并废弃出口的定义。 如果装入模块 EP3 未在使用中,那么会将其删除。
    EXEC CICS DISABLE PROGRAM('EP3') EXITALL