簡體   English   中英

JBoss和JTS; XA還是本地數據源?

[英]JBoss with JTS; XA or local datasource?

我想進行分布式交易。 我有3個啟用了JTS(事務管理器)的應用程序服務器。 每個應用程序服務器都連接到一個數據庫。 一個應用程序服務器調用另一個應用程序服務器的2個EJB。 我希望在交易中執行所有呼叫。

問題:應用程序服務器(JBoss)的數據源應為本地還是xa?

所有應用程序服務器都有一個事務管理器。 所有TM都與JTS(OTS)互相交談。 因此,它們不會直接連接到遠程數據庫。 那么為什么遠程數據庫應該是XA?

您必須使用容器管理的事務 ,並且必須使用XA數據源來獲取分布式事務。

因此,第一個應用程序服務器創建了全局事務,並且事務上下文傳播到了其他應用程序服務器的EJB中(在bean管理的事務中,它不會傳播)。 在那些方法中,它們與XA數據源的連接被列入全局事務中。

當第一個應用程序服務器中的方法完成時,全局事務將提交所有工作單元(在所有應用程序服務器中)。 如果存在錯誤,則將回滾全局事務,因此將丟棄所有工作單元。

因此,JTS不會彼此“交談”,全局事務僅由第一個應用程序服務器協調。

如果應執行所有調用或不執行任何調用,則應使用xa-datasources,否則在組件之一中進行回滾將不會迫使其他方回滾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM