COBOL-DB2程序中重启逻辑的实现


问题:一个COBOL-DB2程序从包含1000条记录的输入文件获取数据并将其插入到DB2表中。该程序在第432条记录后失败。您将如何实现重启逻辑?

解决方案

可以通过设置提交频率在COBOL-DB2程序中实现重启逻辑。如果我们选择100的提交频率,则需要执行以下步骤

  • 声明一个用于计数器的变量,例如WS-COUNT。
  • 放置一个循环,我们将在其中从文件读取记录并将其插入数据库。每次成功插入记录时,将计数器WS-COUNT加1。
  • 一旦WS-COUNT达到提交频率100,我们将把最后插入的记录键(键字段)写入一个单独的输出文件,初始化WS-COUNT并触发COMMIT语句。确保以I/O模式打开此单独的输出文件,以便我们每次都可以重写记录。
  • 对每100条插入的记录重复上述过程,即第100条、第200条、第300条等。
  • 当最后一条记录(即第1000条记录)成功插入后,我们将清空输出文件。但是,如果程序由于任何原因追加,则输出文件将包含最后成功插入和提交的记录。
  • 在程序开始时,包含一个逻辑来检查输出文件是空还是非空。如果文件为空,则开始将被视为新的开始;如果文件非空,则我们将将其视为程序在追加后重启。
  • 在重启的情况下,输出文件已包含最后插入/提交的记录。我们需要简单地在循环中读取输入文件,并将其键与输出文件进行比较。一旦键匹配,我们需要开始处理记录并将它们插入数据库。

更新于: 2020年11月30日

浏览量10K+

开启你的职业生涯

通过完成课程获得认证

开始学习
广告