?
このドキュメントでは、 php中國(guó)語(yǔ)ネットマニュアル リリース
一般來(lái)說(shuō),Spring的事務(wù)抽象與應(yīng)用服務(wù)器是無(wú)關(guān)的。此外,使用Spring的 JtaTransactionManager
類時(shí),
一種可選的方式是通過(guò)JNDI查詢獲得JTA UserTransaction
和 TransactionManager
對(duì)象,
其中后者可以被設(shè)置為自動(dòng)探測(cè),這時(shí)針對(duì)不同的應(yīng)用服務(wù)器有不同的方式。能夠直接訪問(wèn) TransactionManager
,
確實(shí)在很大程度上增強(qiáng)了事務(wù)語(yǔ)義,可以參考 JtaTransactionManager
類的javadoc獲得更多細(xì)節(jié)。
當(dāng)在J2EE應(yīng)用服務(wù)器上運(yùn)行時(shí),Spring的JtaTransactionManager
是一個(gè)標(biāo)準(zhǔn)的選擇,它在已知的所有通用服務(wù)器上都能正常工作。
它的一些諸如事務(wù)掛起等高級(jí)功能也可以在無(wú)須特殊配置的情況下在已知的許多服務(wù)器上工作(包括 GlassFish、JBoss、Geronimo和Oracle OC4J),
然而,為了完全支持事務(wù)掛起等高級(jí)功能,Spring為IBM WebSphere 、BEA WebLogic以及Oracle OC4J提供了特殊支持。我們會(huì)在后面的章節(jié)中討論這個(gè)話題.
在標(biāo)準(zhǔn)的場(chǎng)景中,包括 WebLogic、WebSphere和OC4J,請(qǐng)考慮簡(jiǎn)單的使用'<tx:jta-transaction-manager/>'
配置元素。
它會(huì)自動(dòng)檢測(cè)底層所使用的服務(wù)器以此來(lái)選擇最合適的事務(wù)管理器。
這意味著你不需要顯式的為服務(wù)器配置特殊的適配器(就像在后面的部分討論的那樣),選擇會(huì)自動(dòng)完成,
并且如果找不到的話會(huì)啟用標(biāo)準(zhǔn)的 JtaTransactionManager
來(lái)管理。
在WebSphere 6.0以及后續(xù)版本中,推薦使用的Spring JTA 事務(wù)管理器是WebSphereUowTransactionManager
。
這個(gè)適配器充分利用了WebSphere應(yīng)用服務(wù)器 (6.0.2.19 以及更高的版本和6.1.0.9以及更高的版本)中提供的 UOWManager
API。
通過(guò)使用這個(gè)適配器,Spring驅(qū)動(dòng)的事務(wù)掛起(PROPAGATION_REQUIRES_NEW
發(fā)起的掛起/恢復(fù))得到了IBM的官方支持。
在WebSphere 5.1環(huán)境下,你可以使用Spring的 WebSphereTransactionManagerFactoryBean
類。
這是一個(gè)工廠類,通過(guò)WebSphere的 靜態(tài)
訪問(wèn)方法獲取到JTA TransactionManager
實(shí)例。
一旦通過(guò)工廠bean獲取到JTA TransactionManager
實(shí)例,
就可以使用該實(shí)例裝配一個(gè)Spring的 JtaTransactionManager
bean,
它封裝了JTA UserTransaction
,提供增強(qiáng)的事務(wù)語(yǔ)義。請(qǐng)參考相關(guān)javadoc以獲得完整信息。
請(qǐng)注意WebSphereTransactionManagerFactoryBean
雖然可以在WAS 5.1和6.0上正常工作,但是并沒(méi)有得到官方的正式支持。
如果需要運(yùn)行在WAS6.0或者更高的版本上,請(qǐng)參考上面的WebSphereUowTransactionManager
部分。
在一個(gè)使用WebLogic 8.1或更高版本的環(huán)境中,你一般會(huì)優(yōu)先選用特定于WebLogic的 WebLogicJtaTransactionManager
類。
來(lái)取代JtaTransactionManager
類。在WebLogic環(huán)境中,該類提供了對(duì)Spring事務(wù)定義的完全支持,超過(guò)了標(biāo)準(zhǔn)的JTA語(yǔ)義。
它的特性包括:支持事務(wù)名,支持為每個(gè)事務(wù)定義隔離級(jí)別,以及在任何環(huán)境下正確地恢復(fù)事務(wù)的能力。
Spring為OC4J 10.1.3以及更高的版本提供了一個(gè)特殊的適配器:
OC4JJtaTransactionManager
。這個(gè)適配器跟前面的WebLogicJtaTransactionManager
很類似,
在OC4J上提供類似的輔助功能:事務(wù)名稱和針對(duì)每個(gè)事務(wù)不同的獨(dú)立等級(jí)。
請(qǐng)注意所有的 JTA 功能,包括事務(wù)掛起,都可以很好的通過(guò)Spring的 JtaTransactionManager
在 OC4J 工作。
特殊的OC4JJtaTransactionManager
提供了比標(biāo)準(zhǔn)JTA更多的超值功能。