应用程序版本的专用资源

在将 CICS 束中的某些 CICS® 资源定义为安装在平台上的应用程序的一部分时,这些资源是该应用程序版本的专用资源。 因此您可以使用相同的名称在同一个平台实例上同时安装这些类型的多个资源。

对于受支持的资源类型,如果在打包并安装为应用程序的 CICS 束中定义了 CICS 资源 (作为应用程序束的一部分或作为应用程序绑定的一部分) ,那么该资源是专用资源。 以此方式创建 CICS 资源时,该资源不可用于平台上安装的任何其他应用程序或版本,并且不可用于 CICS 区域中的其他应用程序。 它只能由定义资源的应用程序版本使用。 这些资源称为专用资源。

支持以下 CICS 资源作为应用程序的专用资源:
  • LIBRARY 资源表示一个或多个数据集 (称为动态程序 LIBRARY 并置) ,可从中装入程序装入模块。
  • PACKAGESET 资源,表示 DB2® 集合,用于限定未限定的 EXEC SQL 请求所引用的 DB2 数据库中的表。
  • POLICY 资源,表示用于管理 CICS 区域中用户任务行为的一个或多个规则。
  • PROGRAM 资源,表示应用程序。 由部署在平台上的应用程序的任务自动安装的程序也是该应用程序版本的专用程序。

作为应用程序的一部分定义的其他资源类型的 CICS 资源以及由任何其他方法定义的 CICS 资源可公开用于所有任务。 这些资源被称为公共资源。 在只有单个版本的应用程序中,当应用程序入口点可用时,声明为应用程序入口点的专用资源将成为公共资源。 对于多版本应用程序,如果应用程序是最高可用版本,那么声明为应用程序入口点的程序是公共程序。 声明为同一应用程序的其他版本的应用程序入口点的程序是私有的。

如果您不希望受支持资源类型的资源是专用资源,请不要将资源定义打包为应用程序的一部分。 而是使用独立 CICS 束,安装在平台级别的 CICS 束, CICS CSD 或 CICSPlex ® SM 数据存储库来定义 CICS 资源。 If an application requires the CICS resource to be available in the CICS region, add the resource as a dependency for the application or the application binding, in an <import> element of the bundle manifest.

POLICY 和 PACKAGESET 资源 (只能在 CICS 束中定义) 在作为应用程序一部分部署的 CICS 束中进行定义时具有与专用资源相同的支持。 因此,可以在不同的应用程序和应用程序版本中使用同名的 POLICY 和 PACKAGESET 资源。

专用资源与应用程序的特定版本相关,而不仅仅是特定应用程序。 因此,它们允许在同一平台实例上同时安装应用程序的多个版本。 有关应用程序的多版本控制的更多信息,请参阅 平台上部署的应用程序的多版本控制

管理应用程序的专用资源

在作为应用程序一部分打包和安装的 CICS 束中定义专用资源时,资源名称在安装中不必唯一。 您可以使用此工具来避免独立开发但使用相同资源名称的应用程序之间的资源名称冲突。 通过在平台上部署的应用程序中管理资源,可以除去对受支持 CICS 资源的唯一资源名称的需求。 您可以使用此过程来帮助进行服务器整合。

更改应用程序时,使用 CICS Explorer® 来修改打包在 CICS 束中的应用程序的相关元素,将新版本号应用于这些 CICS 束以标识更改,然后重新版本并重新安装应用程序。 将任何未修改的 CICS 束保留为与以前相同的版本号,因为 CICS 将管理具有相同标识和版本号的 CICS 束的多个安装过程。

重新安装未修改的 CICS 束仅可用于作为部署在平台上的应用程序的一部分安装的 CICS 束。 如果独立 CICS 捆绑软件已使用相同的标识和版本进行安装,或者在 CICS TS 版本 5.1之前的发行版中创建的 CICS 捆绑软件未使用标识和版本进行安装,那么无法重新安装这些捆绑软件。 但是,同一 CICS 束可以作为独立 CICS 束安装在 CICS 区域中,也可以作为部署在平台上的一个或多个应用程序的一部分进行安装和重新安装。

在专用资源上执行诸如安装和废弃之类的操作时,将发出特殊 CICS 消息。 这些消息提供的信息与针对该类型公共资源的相应操作的信息相同,但它们还会说明专用资源所应用于的平台,应用程序和应用程序版本,以便您可以对相关上下文中的操作进行审计或故障诊断。

要查看应用程序的每个已安装版本的专用资源,请使用 CICS Explorer。 在应用程序描述符编辑器中,可以按资源类型查看应用程序的专用资源和应用程序入口点,并按 CICS 区域或按 CICS 束对其进行过滤,以帮助找到特定资源。 您还可以查看 z/OS® 为专用 LIBRARY 资源的数据集 LIBRARY 并置生成的 DD 名称。

您可以使用针对资源类型的 EXEC CICS INQUIRE 系统编程命令来查询或浏览专用资源。 缺省情况下, CICS 将搜索可用于发出 EXEC CICS INQUIRE 命令的程序的资源。 您还可以选择浏览指定应用程序的专用资源。

  • 从公共程序发出 EXEC CICS INQUIRE 命令时,将返回有关指定公共资源的信息。 如果该资源不可用作公共资源,那么将返回 找不到 响应。
  • 从正在平台上部署的应用程序的任务下运行的程序发出 EXEC CICS INQUIRE 命令时,将返回有关该应用程序的指定专用资源 (如果存在) 的信息。 如果应用程序没有具有该名称的专用资源,那么将返回有关具有指定名称的公共资源的信息。 如果该资源不可用作该应用程序的专用资源或公共资源,那么将返回 找不到 响应。
  • 从公共程序以浏览方式使用 EXEC CICS INQUIRE 命令时,如果未指定任何其他输入参数,那么将返回指定类型的公共资源集。 如果从在平台上部署的应用程序的任务下运行的程序发出相同的浏览命令,那么浏览将返回由应用程序的指定类型的任何专用资源以及指定类型的公共资源组成的一组资源。
  • 要从公共程序或专用程序浏览应用程序的专用资源,请发出带有 START 选项的 EXEC CICS INQUIRE 命令,并指定由平台,应用程序和应用程序版本组成的应用程序上下文作为输入。 浏览将返回一组仅由应用程序的指定类型的专用资源组成的资源。 如果找不到具有指定应用程序上下文的应用程序,那么将返回 APPNOTFOUND 条件。
有关浏览专用资源的更多信息,包括从发出该命令的应用程序浏览不同应用程序的资源的示例,请参阅 浏览资源定义

要在 CICSPlex SM 实时分析 (RTA) 函数中支持专用资源,必须在资源的评估定义 (EVALDEF) 中指定应用程序上下文参数 PLATFORM , APPLICATION , APPLMAJORVER , APPLMINORVER 和 APPLMICROVER。 有关使用用户定义的 CICSPlex SM WUI 视图和资源对象创建和维护实时分析定义的指示信息,请参阅 实时分析

CICS 为专用资源生成单独的统计信息记录。 专用资源的统计信息记录包含有关为其定义资源的应用程序的信息。 公共程序和库资源的统计信息 DSECT 和 DFHSTUP 报告具有专用资源的相应 DSECT 和 DFHSTUP 报告。 已声明为应用程序入口点的程序将在公共和专用统计信息中进行标识和报告,因为虽然入口点可公开访问,但它也是应用程序的一部分。

作为依赖关系的专用资源

在打包为平台上部署的应用程序的一部分的 CICS 束中,可以将公共或专用资源定义为依赖关系,包括由应用程序自动安装的专用程序。 CICS checks first for a private resource with the specified type and name in the same application as the CICS bundle that contains the <import> element in the bundle manifest file. 如果安装了多个版本的应用程序,那么当前应用程序上下文会确定导入的专用资源的版本。 如果找不到该资源作为应用程序的专用资源,那么 CICS 会在 CICS 区域中检查与指定类型和名称匹配的公共资源,并导入该资源。 您不能从其他应用程序导入专用资源。

专用 LIBRARY 资源

LIBRARY 资源表示可从中装入程序装入模块的一个或多个数据集 (称为动态程序 LIBRARY 并置)。 支持 LIBRARY 资源作为应用程序版本的专用资源。 应用程序的每个版本都应包含至少一个专用 LIBRARY 资源,该资源表示包含应用程序的装入模块的特定于版本的数据集。

  • 当部署在平台上的应用程序的任务需要程序装入时,将首先搜索为该应用程序版本定义的专用 LIBRARY 并置,以便装入正确版本的程序。 如果为同一应用程序版本定义了多个 LIBRARY 并置,那么将按它们的排名顺序对它们进行搜索。
  • 如果应用程序中未定义 LIBRARY 并置,或者在任何专用 LIBRARY 并置中找不到程序,那么将搜索为整个 CICS 区域 (包括 DFHRPL) 定义的公用 LIBRARY 并置。
  • 对于未与平台上部署的应用程序关联的任务,仅搜索公共 LIBRARY 并置,因此驻留在专用 LIBRARY 并置中的所有程序装入模块不可用。

如果禁用了应用程序的任何专用 LIBRARY 并置,因为禁用了定义相关 LIBRARY 资源的 $TAG1 CICS $TAG2 束,那么 $TAG3 CICS $TAG4 不会搜索任何其他专用 LIBRARY 并置,也不会搜索为整个 CICS 区域定义的任何公用 LIBRARY 并置。 因此,在启用定义 LIBRARY 资源的 CICS 束之前,应用程序的所有后续程序装入都将失败。

对于打包并安装为应用程序束或应用程序绑定束的一部分的 CICS 束中定义的专用 LIBRARY 资源, LIBRARY 资源的名称不会用作数据集 LIBRARY 并置的 DD 名称。 相反,当应用程序安装在平台上时, CICS 会请求数据集的 LIBRARY 并置的唯一 DD 名称。 因此,资源名称可以与安装中其他位置使用的 LIBRARY 名称相同,也可以由应用程序的不同版本使用。 CICS 发出消息 DFHLD0518 以说明 z/OS 为 LIBRARY 并置生成的 DD 名称。 您还可以在 CICS Explorer中查看已安装应用程序的数据集名称。

专用 PACKAGESET 资源

专用资源 PACKAGESET 表示 DB2 集合。 PACKAGESET 资源具有单个属性 name ,该属性是 DB2 集合标识的名称,长度最多为 128 个字节。 通过允许 CICS 代表应用程序发出 EXEC SQL SET CURRENT PACKAGESET 命令,使用 PACKAGESET 在不同环境中指定不同的集合标识。 此资源使云环境中的数据处理更轻松,更灵活。

一个应用程序最多可以有两个与之关联的 PACKAGESET 资源。 如果安装了多个 PACKAGESET 资源,那么将按以下顺序选择相关联的资源:
  1. 作为应用程序或应用程序绑定的一部分安装的 PACKAGESET 资源。 通过将 PACKAGESET 资源作为应用程序绑定的一部分进行安装,可以在不同环境中使用不同的集合标识,而无需更改应用程序捆绑软件。 例如,测试,质量保证和生产环境都可以将应用程序与不同的 PACKAGESET 资源相关联,并因此与不同的集合标识相关联。 如果 PACKAGESET 资源是作为应用程序 (而不是其应用程序绑定) 的一部分安装的,那么将在所有环境中使用相同的 PACKAGESET 资源,因此将在所有环境中使用相同的集合标识。
  2. 作为平台一部分安装的 PACKAGESET 资源。 通过关联此 PACKAGESET 资源,平台上运行的所有应用程序都将使用相同的 PACKAGESET 资源,因此将使用相同的集合标识。

当 CICS-DB2 连接设施处理工作单元的第一个 SQL 请求时,该设施会检查是否存在适用于该任务的 PACKAGESET 资源。 首先,它会检查是否定义了 PACKAGESET 资源,其作用域与任务的应用程序上下文中的平台,应用程序和版本相匹配。 如果不是,那么该设施将检查是否为平台上的所有应用程序定义了 PACKAGESET 资源。 如果存在 PACKAGESET 资源,那么 CICS-DB2 连接设施会链接到 CICS提供的程序 DFHD2SPS,以在处理来自应用程序的第一个 SQL 请求之前发出 EXEC SQL SET CURRENT PACKAGESET 命令。

对于后续 SQL 请求,除非应用程序上下文发生更改,否则不需要进行其他处理。 如果应用程序上下文已更改,那么 CICS-DB2 连接设施链接到 DFHD2SPS 以设置新的程序包集名称,或者如果新上下文未定义 PACKAGESET 资源,那么设置空白程序包集名称。 应用程序上下文可以更改的示例是 EXEC CICS LINK 命令已发出到新应用程序中,或者 EXEC CICS LINK 调用返回到调用应用程序时。

在同步点时, CICS-DB2 连接设施链接到 DFHD2SPS 以将 PACKAGESET 资源重置为空白。

DFHD2SPS 在 L8 开放式 TCB 上作为并行 (REQUIRED) , API (CICSAPI) , EXECKEY (CICS) 程序运行。 它是从 CICS-DB2 TRUE DFHD2EX1链接到的,通常在 L8 TCB 上运行,因此不会产生 TCB 切换开销。 但是,对于 Java 程序和 XPLINK C 程序, DFHD2EX1 分别在 T8 或 X8 TCB 上运行,因此当调用 DFHD2SPS时,将对 L8 TCB 进行 TCB 切换并重新进行 TCB 切换。

PACKAGESET 资源为可选项,用于管理不同环境之间的不同集合的现有机制仍然可用 ,例如,多计划、动态计划出口或自行在应用程序中设置包集合。

注意: 使用 SET CURRENT PACKAGESET 命令的现有程序必须在调用使用 PACKAGESET 资源的应用程序之后重新建立其程序包集。 要重新建立软件包集,请发出另一个 SET CURRENT PACKAGESET 命令。 CICS 不知道除 PACKAGESET 资源定义的程序包集以外的程序包集。

仅使用捆绑软件定义的 PACKAGESET 资源作为应用程序的一部分,通常通过应用程序绑定。 任何尝试安装包含不在应用程序或平台中的 PACKAGESET 资源的独立捆绑软件都将失败。

专用 POLICY 资源

POLICY 资源表示一个或多个规则,用于管理 CICS 区域中用户任务的行为。 策略是包含一个或多个具有关联阈值和操作的规则类型的 XML 定义。 策略规则描述可以应用于一个或多个任务的控制或操作。 条件和操作对构成策略规则,并且可以在策略中定义一个或多个策略规则。 策略是在 CICS 束中定义的, CICS 束可以由一个或多个策略组成。

当运行的任务数超过定义的资源使用阈值时,CICS 会执行策略内指定的操作。 您可以部署策略以监视用户任务的资源利用率,并在资源利用率超过您定义的阈值时自动响应。 只要任务通过发出 EXEC CICS 命令将控制权移交给 CICS ,就可以检测并适当处理过多的资源使用情况以及循环和失控事务。

策略始终在 CICS 束中定义,这些束始终部署到特定作用域。 作用域可以是应用程序,应用程序内的操作或平台。

策略定义有关您希望应用程序或系统的各个方面的行为方式的合同。 策略适用于用户任务的实例,不同任务组可以共享一组公共策略,从而允许以不同方式控制工作负载的各个部分。 与应用程序或平台中运行的任务相关联的策略规则集合定义了任务可以安全执行的边界。 它们允许系统管理员预先设置对用户应用程序行为的限制。 通过这种方式,策略使 CICS 能够度量,响应和强制执行任务的行为,这些任务会在策略中定义的适用于这些任务的任何规则执行时对这些规则进行超越。

有关策略的更多信息,请参阅 CICS 策略

专用 PROGRAM 资源

PROGRAM 资源表示存储在程序库中的程序装入模块。 PROGRAM 资源作为应用程序版本的专用资源受支持。 由部署在平台上的应用程序的任务自动安装的程序也是该应用程序版本的专用程序。

在 CICS 存储器中仅装入每个程序版本的一个副本。 在装入专用程序之前, CICS 会检查是否已从具有匹配 PROGRAM 资源定义的同一数据集 (PDS 或 PDSE) 装入该程序版本。 如果是这样, CICS 将使用现有副本。 因此,当您复用 PROGRAM 资源名称时,以下规则适用:
  • 要共享从同一 PDS 或 PDSE 装入的同一程序的多个应用程序必须在 PROGRAM 资源定义中使用相同的属性。
  • 如果多个应用程序对不同的程序资源使用相同的名称,那么每个应用程序都必须从不同的数据集 (PDS 或 PDSE) 装入程序。
如果在专用程序的 PROGRAM 资源定义中指定 RELOAD=YES ,那么其程序装入行为将更改为与公共程序相同。 程序控制链接,装入或 XCTL 请求将程序的新副本引入存储器。 RELOAD (YES) 程序不能复用,并且不能由多个应用程序共享。 当不再需要每个程序副本时,并且在任务终止之前,必须使用存储器控制 FREEMAIN 请求从存储器中显式除去每个程序副本。

如果在应用程序的专用程序目录中找不到应用程序所需的程序,那么 CICS 将搜索公共程序目录。

声明为应用程序入口点的程序必须使用环境中唯一的 PROGRAM 资源名称。 要允许从应用程序外部调用这些程序,这些程序必须为公共资源。 当您使包含专用 PROGRAM 资源的应用程序入口点的应用程序可用时,指定为应用程序入口点的 PROGRAM 资源将从专用资源更改为公共资源。 CICS 区域中只能存在具有特定名称的公共资源的一个实例。 因此, PROGRAM 资源不能与 CICS 区域中安装的公共程序同名,也不能与其他已安装的应用程序定义为应用程序入口点的公共程序同名。 但是,可以为同一应用程序的多个版本安装定义为应用程序入口点的同一 PROGRAM 资源的多个版本,因为 CICS 管理将 PROGRAM 资源提升为应用程序版本的公共状态。