java TransactionAs_系统使用中报错java.lang.IllegalStateException: Transaction rolled back because it has be...

【问题描述】

系统使用中报错java.lang.IllegalStateException: Transaction rolled back because it has been marked as rollback-only,异常如下

Caused by: java.lang.RuntimeException:

TxManager 0 has exception:java.lang.IllegalStateException: Transaction rolled back because it has been marked as rollback-only

TxManager 1 has exception:java.lang.IllegalStateException: Transaction rolled back because it has been marked as rollback-only

TxManager 2 has exception:java.lang.IllegalStateException: Transaction rolled back because it has been marked as rollback-only

TxManager 3 has exception:java.lang.IllegalStateException: Transaction rolled back because it has been marked as rollback-only

at com.primeton.common.transaction.impl.datasource.DataSourceTransactionManagerSetProvider$DataSourceTransactionManagerSet.commit(DataSourceTransactionManagerSetProvider.java:155)

at com.primeton.spring.support.DatabaseUtil.insertEntity(DatabaseUtil.java:64)

... 126 more

[2016-10-17 16:09:55,510][ERROR][com.primeton.ext.engine.core.processor.ExtBizProcessor:141]

java.lang.reflect.InvocationTargetException

at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at com.eos.system.utility.ClassUtil.invokeMethod(ClassUtil.java:650)

at com.primeton.ext.engine.core.processor.ExtBizProcessor$1.run(ExtBizProcessor.java:118)

at com.primeton.ext.common.muo.MUOTemplate.execute(MUOTemplate.java:40)

at com.primeton.ext.engine.core.processor.ExtBizProcessor.doProcess(ExtBizProcessor.java:116)

at com.primeton.ext.engine.core.processor.AbstractProcessor.process(AbstractProcessor.java:102)

【解答】

从异常信息java.lang.IllegalStateException: Transaction rolled back because it has been marked as rollback-only来看,

该问题很可能是因为业务代码中存在事务提交或回滚的动作,当调用业务代码后业务代码出错然后回滚,但是并没有把异常抛出来,

当新增一条记录后提交事务的时候发现该事务已经标记为回滚,所以无法提交或者再回滚。

建议检查业务代码中是否存在事务回滚或者提交,同时又不抛出异常的情况,若是这样会导致此类异常。

如果是这样建议代码中不要设置提交或回滚,抑或是如果存在异常则将异常抛出来,而不是catch。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值