打开数据表

必须先打开数据表,然后应用程序才能使用该数据表。 打开数据表的方式与打开任何 CICS® 文件的方式相同。

支持以下方法:
  • 如果数据表是使用 OPENTIME (STARTUP) 定义的,那么由 CICS提供的事务 CSFU 在 CICS 启动结束时自动执行。
  • 由用户发出的 CEMT 或 EXECCICS请求或CICS Explorer明确执行。
  • 隐式地,在第一次引用数据表时,如果数据表是使用 OPENTIME (FIRSTREF) 定义的。 对已关闭数据表的第一次远程访问将隐式打开该数据表。

打开 CICS 文件的所有规则和选项也适用于定义为数据表的文件。 此外,除非是使用 LOAD(NO)的耦合设施数据表,否则会启动数据表加载。

对于大型数据表,装入可能需要大量时间。 为访问数据表而开发》讨论了可用于用户维护的共享数据表或耦合设施数据表的应用程序编程命令,以及在加载完成之前,使用CICS共享数据表所能实现的性能提升受到限制的方式。

在打开文件期间完成以下步骤:
  1. VSAM 源数据集的访问方法控制块 (ACB) 在单独的 z/OS® 任务控制块 (TCB) 下打开。 此步骤与任何 CICS 文件相同。
  2. 对于区域使用的第一个共享数据表,CICS
    • 创建 z/OS 存储池以供共享数据表支持使用
    • 创建 z/OS 数据空间以供此区域的数据表使用
    • 尝试将 LOGON 操作作为服务器
  3. 如果指定了 LOAD(YES),则需要附加一个特殊的CICS事务CFTL,以将数据表加载到数据空间中,或使用 CFCL 加载耦合设施数据表。
  4. 发出打开数据表的请求的事务现在可以继续处理。
  5. 对于共享数据表,CICS会发出一条消息DFHFC0940表示加载已经开始。 将消息发送到 CSFL 瞬时数据队列。
  6. 装入数据表的事务按顺序读取源数据集。 在用户退出 XDTRD 的可选控制下,事务将记录复制到数据表中。
  7. 对于共享数据表,CICS会发出一条消息来指示加载结果。 消息号为:
    • 如果装入成功: DFHFC0941
    • 如果装入失败: DFHFC0942, DFHFC0943, DFHFC0945, DFHFC0946, DFHFC0947或 DFHFC0948
    将消息发送到 CSFL 瞬时数据队列。 此外,如果装入失败,那么会将消息发送到控制台。
  8. 装入完成 (无论成功与否) 时,将调用用户出口 XDTLC (如果它处于活动状态)。 如果装入未成功完成,那么出口程序可以请求关闭数据表。
  9. 对于用户维护的共享数据表或耦合设施数据表,源数据集的 ACB 在加载完成后关闭。 如果数据集最初是动态分配的,并且可供其他作业使用,那么将取消分配该数据集,前提是没有其他 ACB 仍为其打开。
注: 在紧急重新启动期间,将重新打开需要回退操作的任何文件。 但是,如果文件定义为数据表,那么此时不会启动装入; 而是由 CSFU 事务在紧急重新启动结束时启动。 这使控制在装入期间将记录复制到数据表的任何用户出口都有机会在 PLTPI 处理的任何阶段激活。