為學(xué)日益,為道日損。
??????? 4.什么是JTA Transaction?它有怎樣的特點呢?JTA Transaction是指由J2EE Transaction manager去管理的事務(wù)。其最大的特點是調(diào)用UserTransaction接口的begin,commit和rollback方法來完成事務(wù)范圍的界定,事務(wù)的提交和回滾。JTA Transaction可以實現(xiàn)同一事務(wù)對應(yīng)不同的數(shù)據(jù)庫,但是它仍然無法實現(xiàn)事務(wù)的嵌套。具體的代碼如下[1]:
??????? 5.什么是Container-Managed Transaction?它又有怎樣的特點呢?Container-Managed Transaction,顧名思義,就是由Container負責(zé)管理的Transaction,當然這樣Transaction是出現(xiàn)在EJB的范疇中。Container-Managed Transaction最大的特點是不需要顯式界定事務(wù)的邊界,也不需要顯式的提交或者回滾事務(wù),這一切都由Container來替我們完成。我們需要做的就是設(shè)定在一個Bean中,哪些方法是跟事務(wù)相關(guān)的,同時設(shè)定它們的Transaction Attribute既可。??????? Transaction的Scope是相當重要的,特別是在一個Bean的方法中調(diào)用另外一個Bean的方法。為了便于說明問題,我們把這兩個方法分別稱為methodA和methodB。當methodA調(diào)用methodB的時候,methodB在事務(wù)的層面上對調(diào)用者methodA有怎樣的限制(methodB中是否存在事務(wù))以及methodA如何在事務(wù)的層面上實現(xiàn)對methodB的調(diào)用(是否需要重新創(chuàng)建一個新的事務(wù)來處理methodB的調(diào)用)都需要通過Transaction Attribute來設(shè)定的。具體的Transaction Attribute有以下六種:Required,RequiresNew,Mandatory,NotSupported,Supports和Never。有關(guān)Transaction Attribute的介紹,可以參閱J2EE Tutorial中關(guān)于Container-Managed Transaction的介紹。??????? [1] 代碼來自SUN的J2EE Tutorial中關(guān)于Bean-Managed Transaction的介紹
Powered by: BlogJava Copyright © 放水老倌