我们可以在同一个资源库类中使用xa和非xa资源的组合吗? 如果可以的话,任何人都可以解释它的行为方式以及交易如何运作。目前我们在我们的资源库中使用2个xa资源和2个非xa资源。我们正在使用glassfish和eclipselink。 方法有问题吗?我们可以在我们的资源库层中使用一个XA资源和两个非XA资源
0
A
回答
1
您不能在单个事务中使用多个本地(=非XA)数据源,但可以在全局事务中合并多个XA资源,或让非XA资源参与全局事务(使用1个XA数据源) (参见LLR 1/2)。
可以考虑的事情: 禁用对一个非XA数据源的事务支持或将它们封装在具有@TransactionAttribute(NOT_SUPPORTED)
的EJB中以禁用事务。您也可以手动编排交易,但这可能会变得相当麻烦。
从GlassFish 3 documentation:(旧版本,但同样适用于新版本)
事务范围本地事务只涉及一个非XA 资源,并要求所有参与的应用程序组件 一个过程中执行。本地事务优化针对资源管理器是特定的 ,对Java EE应用程序透明。
在GlassFish应用服务器,JDBC资源是不可XA如果符合下列条件要么 :
在JDBC连接池的配置,数据源类不 无法实现的javax。 sql.XADataSource接口。
资源类型设置未设置为javax.sql.XADataSource。
一个且唯一一个非XA资源用于:如果满足下列条件保持为真
事务依旧是局部的。如果使用任何其他非XA 资源,则事务将中止。
没有事务导入或导出。
交易涉及多个资源或多个参与者 过程分布式或全局事务。如果启用了最后一次代理优化,则全局事务 可能涉及一个非XA资源。否则,所有资源必须是XA。默认情况下,use-last-agent-optimization 属性设置为true。有关如何设置此 属性的详细信息,请参阅配置事务服务。
如果在事务中仅使用一个XA资源,则会发生一阶段提交 ,否则该事务将与两阶段提交协议协调。
相关问题
- 1. 休眠 - Bitronix - 春天 - 无法登记多个非XA资源
- 2. Fullcalendar:我们可以为不同视图使用多个资源
- 3. 单个资源和多个资源
- 4. 我们可以使用资源表达式在ASP.NET MVC
- 5. 混合资源(REST)和非资源
- 6. 可以“使用”多个资源导致资源泄漏?
- 7. 我可以在单个页面的资源中合并资源XAML词典吗?
- 8. Rails单个资源作为两个其他资源的嵌套资源
- 9. Rails 4:我可以在另一个浅层资源内嵌入浅层资源吗?
- 10. 一个资源属于两个母公司资源
- 11. 资源编辑器中的Dll资源:它们来自哪里?
- 12. 我可以将两个连接资源连接在一起吗?
- 13. 在我的第一个布局资源中包含第二个布局资源
- 14. 我们如何在.NET CustomCulture映射到一个资源文件
- 15. 资源与资源
- 16. 镆铘非www资源 - > WWW资源
- 17. Qt:我们可以在运行时更改资源内容吗?
- 18. 我们可以在Java 7中同时使用资源和多重捕获吗?
- 19. 我们可以从Android中的strings.xml以外的资源文件加载字符串资源吗?
- 20. 我是否需要每个布局资源的菜单资源
- 21. 如何防止“本地事务已有1个非XA资源”异常?
- 22. WebResources嵌入式资源和Javascript如何在另一个嵌入式资源中使用它们?
- 23. 如何为MQ资源适配器禁用XA事务?
- 24. 我如何过滤一个资源,它在rails 3中的嵌套资源?
- 25. 是什么原因导致阿朱1603(找不到新的XA资源用于恢复非序列化的XA资源)
- 26. 我们可以添加安全领域glassfish资源
- 27. 我们可以动态生成轨道资源吗?
- 28. 我们可以添加\附加安全组到Terraform aws_cloudformation_stack资源
- 29. 多个资源
- 30. 我可以使用资源本身作为监视器来锁定资源吗?