oracle-ccb - 模块 CIPPPFN:HA100 中发生多线程 PUPL SQL 错误代码 000099997 - UPDATE TCTL
问题描述
我们在 CC&B 2.6 上。我们在 8 个线程上运行基本流程PUPL Payment Upload 。有时,进程在线程上失败。其他线程成功运行。当我们重新启动作业时,该线程恢复并成功完成。
显示的错误消息是:SQL 错误代码 000099997 发生在模块 CIPPUPFN:HA100 - UPDATE TCTL
有没有人遇到过这个?
解决方案
此问题可能是由处理会话和 ThreadlocalStorage 对象交互的产品中的错误引起的。一些与会话相关的状态,例如 DBLocalCobolSQLProcessBackend 实例的映射存储在 ThreadlocalStorage 上,而它应该在 FrameworkSession 上。
如果另一个会话临时“推送”到 ThreadlocalStorage(例如通过 SessionExecutable>>doInReadOnlySession()),则原始会话被搁置,但 DBLocalCobolSQLProcessBackend 的映射被不正确地破坏,并且在原始会话恢复时无法恢复。
如果从 COBOL 到 Java 的后续与 db 相关的调用需要访问 DBLocalCobolSQLProcessBackend 的实例,则缺少所需的实例并创建了一个新的空实例,这会导致下游代码中出现 NPE。
推荐阅读
- apache - Ubuntu - 使用不同证书保护 *.mydomain.com 和 *.sub.mydomain.com 时遇到问题
- python - 字符串索引超出范围(长度错误不同)
- android - android 设备连接android studio 时无法识别,显示无法定位adb .. 什么问题?
- android - onItemSelectedListener 不适用于微调器 Kotlin
- python-3.x - 在 MPI azure ml 管道中运行 MPI python 脚本
- css - React-Bootstrap:使用 Font Awesome SVG 自定义 Navbar 的汉堡菜单
- javascript - 未经身份验证无法使用 nodemailer 发送电子邮件
- .net - 在 Angular 应用程序中设计 Grapecity 活动报告
- jenkins - 如何转义 Groovy 中的特殊字符,例如括号和“|”?
- dialogflow-es - 仅在会话期间对 google userStorage 的操作