数据源、XADataSource 和 JTA

DataSource ,XADataSource and JTA

我正在尝试了解 JPA 中的本地和全局事务。 在 JPA 规范中,我发现有两种类型的事务,即 RESOURCE_LOCALJTA 又名 GlobalTransaction。 但是我在某处读到,参与全局事务 Datasource 应该是 XA-complient。 当我们在 persistence.xml 中声明 <jta-datasource> 时。是javax.sql.DataSource类型的,不是javax.sql.XADataSource类型的,还参与了Global Transaction,一直让我很困惑。 请给我一个清晰的认识。

谢谢

我能够理解前后阅读 JTA 规范,它说:

当有多个跨资源时数据源、JMS 队列等,参与 JTA 它们都必须是 XA-Complient 。当有单个资源时,条件不一定成立意味着它可能符合也可能不符合 XA;