[英]Multiple resource providers in same transaction Spring
我使用Jackrabbit來存儲文件(數據存儲)和Hibernate幾乎所有其他東西。 我不知道很多事務等,但我知道我想要這兩個事務的全局事務,以便一個例外回滾一切。 目前數據庫的東西被回滾,但Jackrabbit卻沒有。
我使用的是Spring 3.2。 我已經將Jackrabbit JCA適配器部署到JBoss(7.1.1)。 我在config xml中有這些行:
<bean id="txManager"
class="org.springframework.transaction.jta.JtaTransactionManager"></bean>
<tx:annotation-driven transaction-manager="txManager"
proxy-target-class="true"/>
然而,這似乎還不夠。 有人能給我一些關於我需要閱讀的內容的線索/在哪里可以找到相關信息嗎? 如果其中一個資源提供者發生了某些事情,我需要回滾所有內容。
設置起來非常棘手。 一個問題是彈簧自動使用'transactionManager'作為默認名稱導致問題。 盡管同步不匹配的數據源很快將成為一場噩夢,但絕對值得付出努力。
這是我的示例配置,對我有用。 當然現在我們可能會使用@Configuration而不是xml。 這使用了Spring Data,JTA,MySQL和XA驅動程序以及Neo4j。 Neo4j具體的東西已被省略。
Spring Data也可以為您提供幫助。
這是一個首發......
<tx:annotation-driven transaction-manager="xaTransactionManager" />
<bean id="xaTransactionManager" class="some.type.of.ChainedTransactionManager">
<constructor-arg>
<list>
<ref bean="jpaTransactionManager"/>
<ref bean="otherTransactionManager"/>
</list>
</constructor-arg>
</bean>
<bean id="jpaTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="localContainerEntityManagerFactoryBean"/>
</bean>
<bean id="otherTransactionManager" class="other.type.of.jta.TransactionManager">
<property name="transactionManager" ref="otherTransactionManagerService"/>
</bean>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.