最过遇到一个对我来说很懵逼的问题,让我紧急解决。
现象:一个流程审批节点提交后,不能正常流转到下一节点。
调查:通过日志没查到任何异常,从很长的LOG内仔细的看到一句话,这句话真的起了很大作用。
lcn start transaction over, res -> groupId:xxxxx and state is rollback.
既然是事务引起的回滚,那我第一反应是肯定有地方报错,但还没有异常,难道是哪位大侠的代码捕获异常时不抛出,还打印这么友好的log?
花费半天找代码,心想大侠你逻辑真强,一个方法能写上千行,让我找的好辛苦呀。最后结果是代码还算规范,没有干出捕获异常不抛出的事。
再就开始进入百思不得其解的时间了,偶然间听到同事讨论问题时说了XX请求超时,豁然开朗呀,TX也会出现超时,然后就往这方面努力了。
回头看一下TX的配置文件,好好看一下这个参数。这里我调的很大,哈哈。
#各事务模块自动补偿的时间上限(毫秒)
#指的是模块执行自动超时的最大时间,该最大时间若过段会导致事务机制异常,该时间必须#要模块之间通讯的最大超过时间。
#例如,若模块A与模块B,请求超时的最大时间是5秒,则建议改时间至少大于5秒。tm.compensate.maxWaitTime=100000