Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我们可以在存储库层中使用一个XA资源和两个非XA资源吗_Java_Jpa_Eclipselink - Fatal编程技术网

Java 我们可以在存储库层中使用一个XA资源和两个非XA资源吗

Java 我们可以在存储库层中使用一个XA资源和两个非XA资源吗,java,jpa,eclipselink,Java,Jpa,Eclipselink,我们可以在同一存储库类中使用xa和非xa资源的组合吗。 如果可以,请任何人解释一下它将如何运作,以及交易将如何运作。目前,我们在存储库中使用2个xa资源和2个非xa资源。我们使用的是玻璃鱼和日食鱼。 方法中是否存在任何问题。您不能在一个事务中使用多个本地=非XA数据源,但您可以在一个全局事务中组合多个XA资源,或者让一个非XA资源参与具有1个XA数据源的全局事务,请参阅LLR/ 您可以考虑的事项: 禁用对一个非XA数据源的事务支持,或将它们包装在支持@TransactionAttributeNO

我们可以在同一存储库类中使用xa和非xa资源的组合吗。 如果可以,请任何人解释一下它将如何运作,以及交易将如何运作。目前,我们在存储库中使用2个xa资源和2个非xa资源。我们使用的是玻璃鱼和日食鱼。
方法中是否存在任何问题。

您不能在一个事务中使用多个本地=非XA数据源,但您可以在一个全局事务中组合多个XA资源,或者让一个非XA资源参与具有1个XA数据源的全局事务,请参阅LLR/

您可以考虑的事项: 禁用对一个非XA数据源的事务支持,或将它们包装在支持@TransactionAttributeNOT_的EJB中以禁用事务。您也可以手动编排事务,但这可能会成为一个相当麻烦的问题

来自:旧版本,但同样适用于新版本

事务范围本地事务只涉及一个非XA事务 资源,并要求所有参与的应用程序组件 在一个进程内执行。本地事务优化是特定的 对于资源管理器来说是透明的,对于JavaEE应用程序来说是透明的

在GlassFish服务器中,如果JDBC资源满足以下条件之一,则它是非XA的 在下列准则中:

在JDBC连接池配置中,DataSource类不会 未实现javax.sql.XADataSource接口

资源类型设置未设置为javax.sql.XADataSource

如果以下条件仍然成立,则事务仍为本地事务:

仅使用一个非XA资源。如果有任何额外的非XA 资源被使用时,事务被中止

没有事务导入或导出发生

涉及多个资源或多个参与者的事务 流程是分布式或全局事务。全球交易 如果启用了最后一个代理优化,则可能涉及一个非XA资源。 否则,所有资源都必须是XA。最后一个代理优化的使用 属性默认设置为true。有关如何设置的详细信息,请参见 属性,请参阅配置事务服务

如果事务中只使用一个XA资源,则一个阶段提交 发生,否则事务将与两个阶段进行协调 提交协议