?
本文檔使用 PHP中文網(wǎng)手冊(cè) 發(fā)布
JCA為資源適配器(resource adapters)指定了幾個(gè)級(jí)別的事務(wù)支持。
你可以在 ra.xml
文件中指定你的資源適配器支持的事務(wù)類(lèi)型。
它本質(zhì)上有三個(gè)選項(xiàng):none(例如CICS EPI 連接器),本地事務(wù)(例如CICS ECI 連接器),全局事務(wù)(例如IMS 連接器)。
<connector> <resourceadapter> <!-- <transaction-support>NoTransaction</transaction-support> --> <!-- <transaction-support>LocalTransaction</transaction-support> --> <transaction-support>XATransaction</transaction-support> <resourceadapter> <connector>
對(duì)于全局事務(wù),可以使用Spring中常見(jiàn)的事務(wù)機(jī)制來(lái)劃分事務(wù),
并以 JtaTransactionManager
為后端(委托給后面的J2EE分布式事務(wù)協(xié)調(diào)程序)。
對(duì)于單獨(dú)CCI ConnectionFactory
上的本地事務(wù),
Spring為CCI提供了一個(gè)專(zhuān)門(mén)的事務(wù)管理策略,
類(lèi)似于JDBC中的 DataSourceTransactionManager
,
CCI API定義了一個(gè)本地事務(wù)對(duì)象和相應(yīng)的本地事務(wù)劃分方法。
Spring的 CciLocalTransactionManager
執(zhí)行這樣的本地CCI事務(wù),
完全依照Spring中常見(jiàn)的 PlatformTransactionManager
抽象。
<bean id="eciConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="eis/cicseci"/> </bean> <bean id="eciTransactionManager" class="org.springframework.jca.cci.connection.CciLocalTransactionManager"> <property name="connectionFactory" ref="eciConnectionFactory"/> </bean>
聲明式或編程式的事務(wù)策略都能被用于任意的Spring事務(wù)劃分功能。
這是Spring通用的 PlatformTransactionManager
抽象的結(jié)果,它解耦了實(shí)際運(yùn)行策略中的事務(wù)劃分。
你可以保持現(xiàn)在的事務(wù)劃分,只需要在 JtaTransactionManager
和 CciLocalTransactionManager
之間轉(zhuǎn)換即可。
有關(guān)Spring的事務(wù)機(jī)制,請(qǐng)參見(jiàn) 第?9?章 事務(wù)管理 一章。