Spring JtaTransactionManager是否会自动从两阶段提交中省略每个事务的未使用资源?

时间:2011-02-25 21:46:20

标签: java spring transactions jta

我想知道Spring如何为给定的带注释的事务提供资源。假设我有3个XA启用的数据源D1,D2和D3。在某些时候,事务可能发生在D1和D2之间,有时可能发生在D2和D3之间,有时可能发生在所有数据源(以及所有组合......等)。

那么,如果所有三个数据源都附加到单个JtaTransactionManager实例,那么Spring是否会自动仅为给定的事务登记所需的资源?如果没有,我必须为每个资源登记组合创建多个JtaTransactionManager实例吗?

谢谢,

克里斯

P.S。我有一个非Spring跟进问题,但我会单独发布。

1 个答案:

答案 0 :(得分:2)

据我所知,Spring并不关心XA,而只是将XA TX管理器作为通用JTA管理器来处理。因此,当提交/回滚时,由经理来完成它的工作。 Spring确实可以确保完成调用。这是由任何其他Spring TA代理使用的相同代理实现完成的。