ibm-midrange - 在提交周期中调用 SQLRPG 时更正提交选项
问题描述
我们的系统上运行了一些作业,它们使用 STRCMTCTL 和 ENDCMTCTL 在提交控制周期中更新文件 FILE1。在使用 UPDATE SQL 语句更新 FILE1 的作业期间,我正在调用一个新的 SQLRPGLE 程序 PGM1。该程序是使用 COMMIT(*NONE) 编译的,因为我希望无论提交控制如何,更新都能通过。现在,当使用此更改调用作业时,我可以看到错误“不允许 ENDCMTCTL”。未决更改处于活动状态。在工作日志中,我没有看到我在 FILE1 上的 PGM1 上所做的更新。将编译选项更改为 COMMIT(*CHG) 会解决此问题吗?此选项是否会在作业的原始承诺周期中进行更新?
解决方案
不。
将编译选项更改为COMMIT(*CHG)
仅使程序使用提交控制运行。看起来您已经在使用承诺控制,并对其下的文件进行了一些更改。因此,您需要在调用 ENDCMTCTL 之前提交更改。您可以在 CL 中紧挨 ENDCMTCTL 之前使用 COMMIT 命令来执行此操作。如果您不这样做,则作业结束时将自动发生 ROLLBACK,并且您将丢失所有更改。
推荐阅读
- javascript - Flutter:在读取 Firebase 数据时进行异步操作
- node.js - AWS Lambda GraphicsMagick 错误:找不到 gm/convert 二进制文件”
- bash - /etc/passwd Bash Shell 的输出
- c# - 如何将值截断到一定的小数位数?
- vba - 如何将 Outlook 中的焦点移至使用 VBA 的电子邮件列表?
- components - UML 中定义接口但不需要或提供接口的组件
- java - 春季启动 java.lang.ClassNotFoundException
- centos - 找出缺少哪个课程
- docker - 没有这样的主机:registry-1.docker.io
- c# - WPF 错误:运算符“<=”不能应用于“对象”和“对象”类型的操作数