装入空 VSAM 数据集
可以通过两种方式将数据装入到空 VSAM 数据集中。
- 运行 AMS 实用程序 IDCAMS
- 使用 CICS 事务将记录写入数据集
虽然 VSAM 在初始数据集装入处理期间施加了一些限制,但当数据集被认为处于 装入方式时,这些限制不会影响 CICS 事务。 对于以非 RLS 方式打开的文件, CICS 文件控制 隐藏
应用程序中的装入方式处理。 对于以 RLS 方式针对空数据集打开的文件, VSAM 将从 CICS 隐藏装入方式处理,并且允许所有 VSAM 请求。
使用 IDCAMS 装入空 VSAM 数据集
如果要将大量数据装入到新数据集,请使用 REPRO 命令将数据从现有数据集复制到空数据集,以批处理作业的形式运行 AMS 实用程序 IDCAMS。
使用 IDCAMS 装入数据集后, CICS 可以正常使用该数据集。
VSAM 装入方式下的数据集在升级集中不能具有备用索引。 如果要创建并装入具有备用索引的数据集,那么必须使用 AMS 或其他适当的批处理程序来装入数据集并调用 BLDINDEX 以创建备用索引。
使用 CICS 应用程序来装入空 VSAM 数据集
如果要装入的数据量很小,并且没有升级集,那么可以使用标准 CICS 文件 WRITE 请求来装入空数据集。
完成对文件的第一次写入或一系列写入 (批量插入) 时, CICS 将关闭该文件并使其处于关闭状态并处于启用状态,以便在下一次引用时将其重新打开以进行正常处理。 如果尝试以装入方式从文件中读取,那么 CICS 将返回 NOTFOUND 条件。
- 使用并行 (必需) 程序装入空 VSAM 数据集的注意事项
- 当您使用并行 (必需) 程序来装入空的 VSAM 数据集时,请注意,如果程序使用一系列 WRITE MASSINSERT 请求,那么将发生从开放式 TCB 切换到 QR TCB 并返回的过多 TCB 切换。
- 发生 TCB 切换的原因
- 要以装入方式打开文件, CICS 无法使用本地共享资源 (LSR) ,因此必须以非共享资源 (NSR) 方式打开该文件。 NSR 要求在 QR TCB 而不是开放式 TCB 上进行处理。
定义为 CONCURRENCY (REQUIRED) 的程序始终在开放式 TCB 上运行。 如果要从并行 (必需) 程序装入文件,那么当文件处于装入方式时,将对每个写操作进行 TCB 从开放式 TCB 切换到 QR TCB 并重新返回。
- 如何避免 TCB 切换
- 建议不要使用一系列 WRITE MASSINSERT 请求来装入文件,因为该文件将保持装入方式,直到一系列 WRITE MASSINSERT 请求完成为止。 您应该在不批量插入的情况下使用单个 WRITE。
完成时,没有批量插入的单个 WRITE 将导致 CICS 关闭并重新打开该文件,从而退出 VSAM 装入方式。 如果通常以 LSR 方式访问该文件,那么当该文件未处于装入方式时, CICS 将以 LSR 方式继续访问该文件,并且将避免 TCB 切换以执行对该文件的进一步写操作。