数据源、XADataSource 和 JTA
Posted
技术标签:
【中文标题】数据源、XADataSource 和 JTA【英文标题】:DataSource ,XADataSource and JTA 【发布时间】:2016-06-08 13:15:11 【问题描述】:我正在尝试了解 JPA 中的本地和全局事务。
在 JPA Specs 中,我发现有两种类型的事务,即 RESOURCE_LOCAL 和 JTA aka GlobalTransaction。
但是我在某处读到的参与全局事务Datasource 应该是XA-complient。
当我们在 persistence.xml 中声明 <jta-datasource>
时。它是javax.sql.DataSource
类型,不是javax.sql.XADataSource
类型,它仍然参与全局事务。它总是让我感到困惑。
请给我一个清晰的理解。
谢谢
【问题讨论】:
【参考方案1】:我能够理解阅读 JTA Spec 之后的内容,它说:
当有多个跨国家资源时,例如参与 JTA 的数据源、JMS 队列等都必须符合 XA。当有单一资源时,条件不一定成立意味着它可能会也可能不会 XA-Complient;
【讨论】:
以上是关于数据源、XADataSource 和 JTA的主要内容,如果未能解决你的问题,请参考以下文章
为啥使用 DataSource 而不是 XADataSource?