CICS 动态存储区

动态存储区 (DSA) 为 CICS® 任务提供用于运行事务的存储器,对于 CICS 操作至关重要。 24 位存储器中的 DSA 有 CDSA、UDSA、SDSA 和 RDSA。 31 位存储器中的 DSA 有 ECDSA、EUDSA、ESDSA、ERDSA 和 ETDSA。 64 位存储器中的 DSA 有 GCDSA、GUDSA 和 GSDSA。

动态存储器区域由从 MVS™ 存储子池获取的虚拟存储器页面组成。 在动态存储区域中, CICS 会在 CICS 子池中安排存储器。 根据需要动态获取子池,一次从动态存储区域中获取一个页面。 各个子池使用的存储器显示在 CICS 存储管理器统计信息中的域子池统计信息中。

CICS 管理扩展数据块中的 DSA 存储器。 单个 DSA 由一个或多个扩展数据块组成。
  • 通常以 256 KB 的倍数分配 24 位存储扩展数据块。 但是,当事务隔离处于运行状态时,将以 1 MB 扩展数据块为单位分配 UDSA。
  • 31 位存储扩展数据块以 1 MB 的倍数分配。
  • 以 1 GB 的倍数分配 64 位存储扩展数据块。
只有拥有的 DSA 才能使用分配的扩展数据块,并且不能在多个 DSA 之间同时共享给定的扩展数据块。
可以从 CICS-key storage , user-key storage 或只读 key-0 受保护存储器分配 DSA 的存储器。 为每个 DSA 分配的存储器类型可取决于 CICS 区域的 STGPROTRENTPGM 系统初始化参数的设置。
  • CDSA , ECDSA , ETDSA 和 GCDSA 的存储器始终从 CICS键存储器分配。
  • STGPROT 系统初始化参数指定您是否希望存储器保护在 CICS 区域中运行。

    当您指定 STGPROT=YES或允许系统初始化参数为缺省值时,将从用户密钥存储器分配用户应用程序的 CICS 动态存储器区域的存储器。 这些 DSA 是 UDSA , SDSA , EUDSA , ESDSA , GUDSA 和 GSDSA。 如果指定 STGPROT=NO,那么将从 CICS-key 存储器分配这些 DSA 的存储器。

  • RENTPGM 参数指定 CICS 是否从只读 key-0 受保护存储器分配只读 DSA。

    当您指定 RENTPGM=PROTECT时,将从只读 key-0 受保护存储器分配只读 DSA。 这些 DSA 是 RDSA 和 ERDSA。 如果指定 RENTPGM=NOPROTECT,那么将从 CICS-key 存储器分配这些 DSA 的存储器。

动态存储器区域过小会导致程序压缩增加,更严重的情况下会导致存储空间不足 (SOS) 情况。 您可以使用 CICS 存储管理器统计信息来检查虚拟存储器上的压力,这些统计信息报告 CICS 在存储器上不足的次数。