002&002;
但是问题出在线程的执行顺序;
两个客户每个人在不同渠道买了一笔, 一共四笔交易记录;
线程A先去更新了 001 & 002 这条记录
线程B先去更新了 002 & 002 这条记录...之后
线程B又去更新 001 & 002 这条记录; (问题在这已经出现)
线程A去更新 002 & 002 这条记录;
后续的线程B在更新的时候, 在等待这条记录之前的UPDATE事务提交或回滚...如果问题出在这也就没什么. 问题是每天这几笔交易都恰巧同时执行.就一直卡死....最后在12月3号, 4笔交易成交了. 4个工作日.问题影响… 客户是拒绝的… 不过好在客户大度, 没有计较. … …
至此将问题从生产日志取下, 分析, 复现, 解决,重新上线 共计 2周+, 期间对spring...如果没有一个活动的事务,则抛出异常(必须由带有事务的方法来调用)
画重点
spring的事务管理中, 让我们容易出现问题的几个传播约定
REQUIRED
NESTED
1是默认传播机制, 2是嵌套传播机制