使用 DDM 处理批处理文件

在将批处理文件处理与 DDM 配合使用时,请考虑这些项。

  • 当应用程序为 仅顺序输入输出添加打开本地文件时,系统将使用分块技术来实现最大吞吐量。 要确保使用 DDM 访问的远程文件使用分块,请勿在程序中使用随机记录处理操作,但对程序打开的 DDM 文件指定 OVRDBF SEQONLY (*YES)。
  • 在高级语言 (HLL) 程序中使用读和读下一个操作来访问文件将使 SEQONLY (*YES) 规范的效果最大化。
  • 使用随机处理操作(如 ILE RPG 的链式操作或 ILE COBOL 编程语言的启动操作)会导致 DDM 通过通信线路发送解锁操作,即使应用程序按顺序处理文件数据也是如此。 这将导致本地文件处理与远程文件处理之间存在显着差异。
  • 当需要简单的物理文件传输 (所有已传输的记录和没有数据的应用程序处理) ,使用 Copy File (CPYF) 命令使用 DDM ,或使用指定了 Override Database File (OVRDBF) 命令 SEQONLY (*YES number-of-records) 的用户编写的程序使用 DDM 时,传输数据的速度比用户编写的 APPC 程序更快。 与标准 ILE RPG 或 ILE COBOL APPC 程序相比, Copy File 命令和 DDM SEQONLY(*YES) 支持在程序和 APPC 数据管理模块之间所需的调用和返回次数更少。
  • 对于 ILE RPG 或 ILE COBOL 只进行顺序输入的应用程序,应指定 SEQONLY(*YES),不指定记录数 ,以获得最佳吞吐量。 对于 ILE RPG 或 ILE COBOL 仅顺序输出到键控文件的应用程序,应使用较大的记录数值
  • 将文件中的所有记录传输到远程 IBM i 操作系统时,Send Network File (SNDNETF) 命令可被视为 DDM 或用户编写的 APPC 程序的替代方案。 SNDNETF 命令要求在源和目标 IBM i 操作系统上配置 SNADS。 如果一个或多个中间系统在源和目标 IBM i 操作系统之间,那么 SNADS 在正确配置时提供数据的中间节点路由。
  • 使用 SNDNETF 命令 (通过使用 SNADS) 提供了以下优点: 通过多节点网络向一个或多个服务器系统上的多个用户传输数据的一个副本,以及使用 SNADS 分发队列参数对该数据进行时间调度传输。

    但是,除了要求 SNADS 使用 SNDNETF 命令之外,服务器系统用户还必须运行 Receive Network File (RCVNETF) 命令以使文件在服务器系统上可用。 使用 DDM 不需要此额外的服务器系统处理。

    通常,使用 SNADS (用户程序 DDM 顺序文件处理, DDM Copy File 命令和两个 IBM i 操作系统之间的用户编写的 APPC 程序) 的文件传输时间在彼此之间的 10% 以内。 但是,使用 SNDNETFRCVNETF 命令使数据副本在服务器系统上可用会增加其他文件传输方法的总处理时间。

  • 由于 SNDNETF 命令可以在保存文件中传输对象,因此使用此方法实际发送的数据量可能小于使用其他方法发送的数据量。 如果发送的数据库文件数据包含大量重复字符串,那么使用 Save Object (SAVOBJ) 命令参数 DTACPR (*YES) (数据压缩) 可显着减少使用 SNADS 分发实际发送的数据量。 但是,如果很少有重复的字符串,那么发送的数据量变化不大。
  • IBM i 文件传输子例程还可用于在 IBM i 操作系统与 IBM iSystem/36 平台。 可以从高级语言程序调用这些子例程,在某些情况下,吞吐量与使用 DDM 实现的吞吐量相似。