簡體   English   中英

同一事務Spring中的多個資源提供者

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM