大概逻辑是这样的 。
本地函数A (读写一卡通卡片的 函数)
服务器函数B (调用操作Oracle的方法)。
函数A 执行的 时间 可能需要 个 1秒中 。这样的话 ,把A 和 B 放到 一个 事物中 明显是不合理的 这样 的 话在 循环执行过程中 会把表 锁死。
现在能想到 的 逻辑 就是 先 执行 B 执行A ,加入 A执行失败 ,在 执行C(C的作用是,将B中修改的数据还原)。
但是 总感觉 这种逻辑 有点问题。
求大家帮助
------解决思路----------------------
建立日志表
1、执行前写日志,标记为未执行状态
2、执行本地函数A ,此时未锁定任何记录,执行结束将日志状态标记为A
3、执行B过程,执行结束,标记状态为完成
如果系统异常中断,重启服务后,可以从日志中查找状态为A的日志记录,继续执行B过程