【发布时间】:2013-09-05 17:54:33
【问题描述】:
我有一个用@Service 注释的类。我有一个方法应该更新两个不同的数据源(数据库和内容存储库)。我在服务类中的方法上添加了@Transactional。无需任何进一步的定制;两个存储库类(使用@Repository 注释)在同一个事务中运行是否正确?
我使用的是 JBoss 7.1.1,我在 Spring (3.2) 配置中有这两行:
<tx:jta-transaction-manager/>
<tx:annotation-driven proxy-target-class="true"/>
或者这是否在两个不同的事务中运行?我只想在服务层方法中没有引发运行时异常时提交数据。它是从控制器方法(用@Controller 注释的类)调用的。
我将尽快为帮助我获得 Jackrabbit 和数据库连接以在同一事务中运行的人添加 500 赏金。我正在使用 JBoss 7.1.1、Spring 3.2、Jackrabbit 2.6.2 JCA。
【问题讨论】:
-
你的配置应该足够了,因为spring会从jndi获取所需的bean,但JTA通常是PITA。我只是建议您测试两个数据源的部分故障以及应用程序崩溃,因为 JTA 事务不是那么容易恢复,您可能需要执行一些手动操作来删除部分事务从事务管理器和数据库
标签: java spring spring-mvc transactions