簡體   English   中英

如何確保在Spring中使用單個事務管理器處理多個DB?

[英]How to make sure multiple DBs are transacted with a single transaction manager in spring?

我正在為每個數據庫使用多個事務管理器(HibernateTransactionManager)。

在一個代碼流程中,我相信我為每個數據庫啟動/完成多個事務。

我想確保所有數據庫事務都是單個事務的一部分。 我該如何實現這一目標?

這里的帖子之一建議使用JTATransaction管理器,我應該將它與已經使用的Hibernate結合使用嗎?

雖然我認為在應用程序的任何階段執行時,所有事務都將被回滾。

我正在使用Spring 4.1。*和hibernate 3.6。*而不使用任何webcontainer。

自從我與Hibernate合作以來已經有好幾年了,如果有任何誤導,請提前道歉。

  • 您需要JTA交易。 您的DataSources需要支持JTA。
  • 如果您在Weblogic或Websphere等Web容器中運行,那么創建JTA事務很容易。 我認為Tomcat不足以滿足要求。 從命令行程序,我還沒有找到答案。
  • 如果您完全控制這三個數據庫,那么您應該沒問題。 但請注意,涉及Web服務的系統的回滾可能不完整或需要非標准協議(例如,Weblogic僅支持基於t3協議的SOAP JTA)

如果您得到結果,請分享,因為該領域的好建議量很少。

(編輯)剛剛注意到你明確表示你沒有使用網絡容器。 如果您遇到命令行程序的解決方案,我們很多人都想知道。 為分布式事務構建JUnit測試是我想要做的,但從未找到如何生成JTA事務對象(/ edit>)

暫無
暫無

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

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