我們可以在同一個資源庫類中使用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. 我可以使用資源本身作爲監視器來鎖定資源嗎?