程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> J2EE JTA和數據庫的transaction研究

J2EE JTA和數據庫的transaction研究

編輯:關於JAVA

研究有結果了,以下是我做了一些測試得出的結論(Sybase+Weblogic+Tx Data Source):

方法一:

1、設置方法為Container-Tracnsaction,方法的trans-attribute為Required

2、幾個方法調用的SP創建前先set chained on,同時SP裡是可以使用Tracnsaction的

3、此方法調用的幾個方法使用同一Connection,Connection的setAutoCommitCommit使用默認設置或設為false,若設為true,則拋出異常:Cannot set auto commit to "true" when in distributed transaction

方法二:

1、設置方法為Container-Tracnsaction,方法的trans-attribute為Required

v2、幾個方法調用的SP創建前先set chained on,同時SP裡是可以使用Tracnsaction的

3、此方法調用的幾個方法使用各自的Connection,各方法Connection的setAutoCommitCommit使用默認設置;若設為true,則拋出異常:Cannot set auto commit to "true" when in distributed transaction;

若某方法設為false,同時在EJB的方法描述裡把此方法的設置方法為Container- Tracnsaction,方法的trans-attribute為Required, 則執行到此方法時會拋出異常:SET CHAINED command not allowed within multi-statement transaction.

方法三:

1、設置方法為Container-Tracnsaction,方法的trans-attribute為Required

2、同時各方法為Container-Tracnsaction,方法的trans-attribute為Required

3、幾個方法調用的SP創建前先set chained on,同時SP裡是可以使用Tracnsaction的

4、此方法調用的幾個方法使用各自的Connection,各方法Connection的setAutoCommitCommit使用默認設置;若設為true,則拋出異常:Cannot set auto commit to "true" when in distributed transaction;若設為false,拋出異常:SET CHAINED command not allowed within multi- statement transaction.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved