CLM1001
请大伙帮忙看一下, 经常报下面这个错误消息,导致用户的一些应用受到影响;
1. 4个JOB AJOBA 会在同一个子系统(SUBA) 下面运行;
2. JOA AJOBA 会调用RPG 程序 RPGA;
3. JOBA 会用到 FILEAAAA FILEBBBB。
从message来看是因为两个job同时访问一个record导致,
Q1: 两个job同时可以访问一个record原因是什么(程序里面已经有互斥机制);
Q2: 怎样避免这种错误的发生。
THANKS.
Additional Message Information
Message ID . . . . . . : CLM1001
Date sent . . . . . . : 11/30/09 Time sent . . . . . . : 22:03:29
Message . . . . : Job AJOBA/USERA/315587 encountered an error in program
RPGA (E W D).
File: FILEAAAA. Exception data: Record 4 in use by job
315143/USERA/AJOBA.. Status: 00000. Statement: 00000000. RPG routine:
*DETC. File status: 01218CHAINFS092 1993. Run date/time: 080809 152359.
Compiled: 042106 at 202238 from C03920ASRC/QRPTSRC(RPGA).
Recovery: Type a "W" to retry the operation. Type an "E" to return an error
status to program RPGA. Type a "D" to dump program RPGA and return to
it an error status.
Bottom
Additional Message Information
Message ID . . . . . . : CLM1001
Date sent . . . . . . : 11/30/09 Time sent . . . . . . : 18:27:29
Message . . . . : Job AJOBA/USERA/315143 encountered an error in program
RPGA (E W D).
File: FILEBBBB. Exception data: Record 1305 in use by job
315588/USERA/AJOBA.. Status: 00000. Statement: 00000000. RPG routine:
*DETC. File status: 01218CHAINFS025 1295. Run date/time: 080809 134558.
Compiled: 042106 at 202238 from C03920ASRC/QRPTSRC(RPGA).
Recovery: Type a "W" to retry the operation. Type an "E" to return an error
status to program RPGA. Type a "D" to dump program RPGA and return to
it an error status.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是买来的软件包?没有源程序?没有技术支持?
这样就比较惨。
可以考虑把子系统的job queue 改成独木桥(每次只可以跑一个作业)试一试。因为这种程序员的思路就是当系统只有他一个人在用。
许多没有经过正规训练的小聪敏程序员写的程序老是有这种问题。有些做了20年的“老前辈”也是这样写的。
thanks, 可能需要看下源代码才能确认, 楼上有啥好办法可以Retrieve RPG source么?
手头只有编译的程序没有源代码。。。。
这是个常见的问题。很多程序员写程序的时候只考虑自己的程序能执行就可以了,忘记了以加锁的方法读纪录,如果更新的条件不满足,是需要解锁的。
这样在多用户环境下这种事情就发生啦!
[ 本帖最后由 franliu 于 2009-12-1 11:40 编辑 ]