JBOSS数据源的理解

最近项目相关的JBOSS配置开始,留下点什么


项目使用的是local-tx-datasource, 网上找了很多资料,都没有明确说明local-tx-datasource和xa-datasource的区别,而且中文的资料太少,去JBOSS Community 查看了一圈找到了有价值的信息。

  1. local-tx-datasouce 能不能参与JTA事务

JBOSS Administration_Configuration_Guide上的解释

<no-tx-datasource>

Does not take part in JTA transactions. The java.sql.Driveris used.

 

<local-tx-datasource>

Does not support two phase commit. The java.sql.Driveris used. Suitable for a single database or a non-XA-aware resource.

 

<xa-datasource>

Supports two phase commit. The javax.sql.XADataSourcedriver is used.

 

说的比较清楚,local-tx-datasource是可以作为JTA事务参与者的, 只是不支持2PC协议(two-Phase-Commit Protocol)。

 

  1. 一个Application 能不能定义多个local-tx-datasource数据源,什么时候用xa-datasource

 

在Forum上到的讨论结果,JBOSS的开发人员认证了一下说法

You have to usexa-datasources in cases where onetransaction spans multiple datasources. Regardless of wheter Iuse a cluster or not.

 

 

For example amethod consuming a JMS message and manipulating a JPA Entity.

 

对这个说法的解释就是,一个Application可以定义并使用很多个local-tx-datasource数据源,但是一个事务(Transaction)只能操作一个数据源。当你的事务需要同时处理不同的数据源的时候,必须定义为xa-datasource,否则会出现org.jboss.util.NestedSQLException:Could not enlist in transaction on entering meta-aware object 的报错。



 

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值