當前位置:編程學習大全網 - 網站源碼 - weblogic + ibatis + 2臺oracle 實現 JTA事務管理 出問題了

weblogic + ibatis + 2臺oracle 實現 JTA事務管理 出問題了

分布式事務的原理是

所有節點的事務全部提交成功,整個事務才能提交

如果某個節點事務提交失敗,則整個事務失敗

可能原因有2:

(1)這可能是因為妳使用的數據庫驅動啟用了分布式事務(XA)。

檢查壹下weblogic控制臺中的數據庫驅動,妳可能需要改壹下,讓它指向壹個不用XA驅動的連接池。

(2)有兩種方法可以實現事務:用JDBC,或者用JTA/JTS。第二種方法可以從ejb context中獲取UserTransaction來實現:

UserTransaction ut = context.getUserTransaction();

ut.begin();

//do business logic

ut.commit();

兩種模式之間有壹個巨大的不同之處——只有第二種支持全局事務。

壹些容器可能為了支持全局事務,會有壹些特殊的數據庫設定(比如容器將壹直創建壹個TX數據庫(支持JTA的數據庫),盡管基礎連接池用的卻是壹個非XA的JDBC驅動)。可能因為如此,壹使用JDBC事務就會出現這樣的失敗。

  • 上一篇:怎樣查看自己的網站訪問量多少呢
  • 下一篇:redis cluster模式 使用pipeline批量操作
  • copyright 2024編程學習大全網