粗心大意,老犯错!
今天上午在调试EJB3调用WebService时一直遇到MySQL报出的这个问题。郁闷坏了,只是执行了一句update而已,就导致这样错误… …
经过半个小时排查,终于找到问题所在了。原因是分布式事务引起的。
场景描述:
EJB3操作A表-->调用WebService-->WebService操作B表
在操作A表的时候需要等待WebService的调用,如果没有异常,则可以提交事务,如果出现异常,则不能提交事务;
在操作B表的时候需要处理异常;
一个简单的分布式事务,一般情况下是没有问题的~但是由于我的粗心大意,做成了EJB3也在操作B表,这样就导致了表被锁死的情况出现~真是郁闷啊!
客户虐我千百遍,我待客户如初恋!