从一个错误谈谈事务管理

本文从一个错误出发,探讨了在分布式事务中使用非XA数据源可能遇到的问题。WebSphere和WebLogic提供了不同的解决方案,如WebLogic的模拟两阶段提交和WebSphere的last participant in策略。在配置数据源时,不一致的引用路径可能导致视为不同数据源,影响事务管理。建议优先使用本地事务,若需分布式事务,尽量选择XA驱动。对于LLR、EPC和LPS等技术,虽然可用但存在安全隐患,应当谨慎使用。
摘要由CSDN通过智能技术生成

最近在产品中发现了一个错误,和分布式事务相关,仔细梳理了一下,还发现不少值得深究的东西,下面就分享给大家。

错误堆栈信息比较长,只摘出关键的一段:

[2/28/12 0:57:28:195 MST] 00000016 SystemErr     R Caused by: javax.resource.ResourceException: enlist: caught Exception
[2/28/12 0:57:28:195 MST] 00000016 SystemErr     R 	at com.ibm.ejs.j2c.LocalTransactionWrapper.enlist(LocalTransactionWrapper.java:696)
[2/28/12 0:57:28:195 MST] 00000016 SystemErr     R 	at com.ibm.ejs.j2c.ConnectionManager.lazyEnlist(ConnectionManager.java:2186)
[2/28/12 0:57:28:195 MST] 00000016 SystemErr     R 	at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.lazyEnlist(WSRdbManagedConnectionImpl.java:2569)
[2/28/12 0:57:28:195 MST] 00000016 SystemErr     R 	at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.beginTransactionIfNecessary(WSJdbcConnection.java:714)
[2/28/12 0:57:28:195 MST] 00000016 SystemErr     R 	... 127 more
[2/28/12 0:57:28:195 MST] 00000016 SystemErr     R Caused by: com.ibm.ws.Transaction.IllegalResourceIn2PCTransactionException: Illegal attempt to enlist multiple 1PC XAResources
[2/28/12 0:57:28:195 MST] 00000016 SystemErr     R 	at com.ibm.ws.tx.jta.RegisteredResources.enlistResource(RegisteredResources.java:864)
[2/28/12 0:57:28:195 MST] 00000016 SystemErr     R 	at com.ibm.ws.tx.jta.TransactionImpl.enlistResource(TransactionImpl.java:1781)
[2/28/12 0:57:28:195 MST] 00
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值