0

调用 iSeries 存储过程(由各种 CL 和 RPG 程序组成)时出现间歇性问题。错误是:-

 Commitment definition *N not valid for open of QAOSSI12
    Error occurred while opening file QAOSSI12. 

如前所述,问题并不总是发生,而是在对过程进行负载测试时发生得更多。

我知道信息很模糊,但任何想法都值得赞赏!

4

3 回答 3

0

我们一直在获得 CPF4326,似乎有效的解决方案是将“事务隔离 = 无”添加到我们的 jdbc URL。无论如何,我们都没有尝试使用事务,因此启用它们没有任何好处。我们还怀疑 iBATIS 中的某些东西会在出现错误时尝试回滚事务,即使我们没有做任何明确的承诺控制。

于 2010-03-17T21:27:47.907 回答
0

如果这是错误 CPF4326,则消息文本提供以下可能性:

  • 当承诺定义 *N 未激活时,成员 QAOSSI12 被打开以进行承诺控制。
  • 对于非 *N 的承诺定义,成员 QAOSSI12 的未提交更改正在等待处理。
  • 调用程序使用范围为 *ACTGRP 的承诺定义 *N,而指定的程序使用范围为 *JOB 打开文件。

在您的情况下,这些情况是否可能?

于 2009-12-18T20:01:50.693 回答
0

您可以在编译时将 COMMIT 值更改为 COMMIT(*NONE) 然后不创建任何提交定义。

提交 (COMMIT) 命令用于完成当前事务并为与发出该命令的程序关联的提交定义建立新的提交边界。

您还必须检查您的文件是否在“日记”下。

于 2020-09-01T11:08:10.983 回答