我正在尝试了解JPA中的本地和全局事务。
在JPA Specs中,我发现有两种类型的交易: RESOURCE_LOCAL 和 JTA 又名GlobalTransaction 。
但我在某处读到的参与全球交易数据源的内容应该是 XA-complient 。
当我们在 persistence.xml 中声明<jta-datasource>
时。它是javax.sql.DataSource
类型,它不是javax.sql.XADataSource
类型,它仍然参与全局事务。它总是让我感到困惑。
请让我明白一点。
由于
答案 0 :(得分:1)
我能够理解读后JTA Spec和它说:
当有多个跨国资源时,例如参与JTA的数据源,JMS队列等都必须是XA-Complient。当存在单一资源时,条件不一定是真实的意味着它可能是也可能不是XA-Complient;