DB2 AS400/IBM ISeries Triggers/On 文件更改

DB2 AS400/IBM ISeries Triggers/On File Change

寻找最佳实践来随着时间的推移获取数据的 DELTA。

没有可用的时间戳,无法编程时间戳!

目标:随着时间的推移获取所有字段的所有文件的差异。只需要主键作为输出。 我还需要这个 15 分钟的数据更改间隔

示例: 客户文件有50个columns/fields,如果任何字段发生变化我想要另一个文件来记录主键。或任何记录客户文件中发生更改的内容。

问题: 我不确定触发器是否可行,因为与触发器相关的开销很大。

任何人都可以在考虑开销和性能的情况下建议 DB2 增量的最佳实践吗?

您是否查看过记录文件和评估日志接收者?

我不确定你为什么认为触发器有很多开销,根据我的经验,它们非常快,但正如大卫建议的那样,你可以记录你想要跟踪的文件,然后分析日志接收者。

要打开日记功能,您需要执行三个步骤:

  1. 使用 CRTJRNRCV
  2. 创建接收器
  3. 使用 CRTJRN
  4. 为接收者创建日志
  5. 使用 STRJRNPF 开始记录文件。您将需要保留 *BEFORE 和 *AFTER 图像以检测更新时的变化,但您可以省略 *OPNCLS 记录以保存一些 space.

完成此操作后,您还可以使用承诺控制来管理交易!但是,您现在必须管理这些接收器,因为它们使用大量 space。您可以通过在 CRTJRN 命令上使用 MNGRCV(*SYSTEM) 来做到这一点。我怀疑您会希望阻止系统自动删除旧接收器,因为这可能会导致您在系统更改接收器时错过一些更改。但这意味着您必须在完成旧接收器后自行删除它们。我建议等待一两天以删除旧接收器。这可能是一个通宵的过程。

要读取日志接收器,您需要使用 RTVJRNE(检索日志条目)让您将日志条目检索到变量中,或使用 DSPJRN(显示日志)让您 return 日志条目到显示器、打印机文件或 *OUTFILE。然后可以使用 ODBC 或 SQL 或您想要处理的方式读取 *OUTFILE。您可以按文件和类型筛选要接收的日记条目。