我正在尝试了解 JPA 中的本地和全局事务。
在 JPA 规范中,我发现有两种类型的事务,即 RESOURCE_LOCAL 和 JTA aka GlobalTransaction。
但我在某处读到,参与全局事务数据源应该兼容XA。
当我们声明 <jta-datasource>
在 persistence.xml 中。是javax.sql.DataSource
类型,不是javax.sql.XADataSource
类型并且它仍然参与全局事务。它总是让我感到困惑。
请给我一个清晰的理解。
谢谢
最佳答案
我能够理解阅读 JTA 规范前后的内容,它说:
当存在多种跨国资源时,例如参与 JTA 的数据源、JMS 队列等都必须是 XA 兼容的。当存在单个资源时,条件不一定成立,意味着它可能符合 XA 标准,也可能不符合 XA 标准;
关于java - 数据源、XADataSource 和 JTA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37703584/