数小时后发现), 杀掉其中一条会话, 导致该会话数据回滚, 而另一个会话因为数据库等待时间过长, 数据也没有进行提交, 最后导致4笔交易全部回滚....最后在12月3号, 4笔交易成交了. 4个工作日.问题影响… 客户是拒绝的… 不过好在客户大度, 没有计较. … …
至此将问题从生产日志取下, 分析, 复现, 解决,重新上线 共计 2周+, 期间对spring...整理, 学习.
----
Sring 事务管理
首先来看事务的四个特性:
原子性 事务的执行将事务内所做的操作看做一个整体, 要么全部执行, 要么全部不执行....隔离性 (可能导致死锁) 简单来说, 两个事务在同时进行更新时,一个事务在更新, 另一个事务需要操作时,不可能看到这条记录之前的值, 需要等到之前的事务要么执行(事务提交),要么不执行(事务回滚...如果一个事务已经存在,则将这个存在的事务挂起(自己一个事务,独立事务)
NEVER: 总是非事务地执行,如果存在一个活动事务,则抛出异常(必须由非事务的方法调用)
MANDATORY: 如果已经存在一个事务