22.5.事务
优质
小牛编辑
132浏览
2023-12-01
22.5. 事务
JCA为资源适配器(resource adapters)指定了几个级别的事务支持。 你可以在ra.xml
文件中指定你的资源适配器支持的事务类型。 它本质上有三个选项:none(例如CICS EPI 连接器),本地事务(例如CICS ECI 连接器),全局事务(例如IMS 连接器)。
<connector> ... <resourceadapter> ... <!-- transaction-support>NoTransaction</transaction-support --> <!-- transaction-support>LocalTransaction</transaction-support --> <transaction-support>XATransaction</transaction-support> ... <resourceadapter> ... <connector>
对于全局事务,你能使用Spring中常见的事务机制来划分事务, 并以 JtaTransactionManager
为后端(委托给后面的J2EE分布式事务协调程序)。
对于单独CCI ConnectionFactory
上的本地事务, Spring为CCI提供了一个专门的事务管理策略, 类似于JDBC中的 DataSourceTransactionManager
, CCI API定义了一个本地事务对象和相应的本地事务划分方法。 Spring的 CciLocalTransactionManager
执行这样的本地CCI事务, 完全依照Spring中常见的 PlatformTransactionManager
抽象。
<bean id="eciConnectionFactory"> <property name="jndiName" value="eis/cicseci"/> </bean> <bean id="eciTransactionManager" > <property name="connectionFactory" ref="eciConnectionFactory"/> </bean>
声明式或编程式的事务策略都能被用于任意的Spring事务划分功能。 这是Spring通用的 PlatformTransactionManager
抽象的结果,它解耦了实际运行策略中的事务划分。 你可以保持现在的事务划分,仅仅需要在 JtaTransactionManager
和 CciLocalTransactionManager
之间转换即可。
有关Spring的事务机制,请参见 第 10 章 事务管理 一章。