2013-04-04 14 views
5

尽力而为1PC在this post中有很好的描述。作者,为SpringSource工作的David Syer提供了一个ChainedTransactionManager的实现,扩展了Spring AbstractPlatformTransactionManager类。根据“尽力而为1PC”模式实现Spring ChainedTransactionManager

这个特定的事务管理器可以开始Ñ交易,例如,JDBC或JMS会话,并执行使用提交的AbstractPlatformTransactionManagerÑ实例中,每一个资源/回滚。这在XA驱动程序不可用的情况下非常有用。由于该帖子非常陈旧,因此Spring 2.5的代码运行良好,但Spring 3+失败。

有一个request ticket在Spring 3+中实现类似的功能。我愿意尝试一下,但我想我会先问:有没有实现?

感谢

+1

我想你可以尝试使用spring-data-neo4j中的ChainedTransactionManager,但是现在什么样的数据库不提供xa驱动程序?如果你需要另一个想法,这个博客http://infinispan.blogspot.com.ar/2011/06/faster-infinispan-based-second-level.html显示缓存系统如何挂钩到JTA同步,以避免XA性能条款。 – Luciano 2013-04-04 19:01:36

+0

谢谢我现在正在使用它,有人在Spring的Jira上提出了它。例如,Vectorwise不提供XA驱动程序。 Giovanni – 2013-04-04 21:00:57

+0

嗨Giovanni,我们也尝试使用尽力而为的1PC模式为我们的春季批量应用做类似的设置。您可以让我们知道您使用这种方法的经验。如果您可以提供给我们一个示例配置文件供参考,这将是非常有用的。我的电子邮件ID是[email protected]。预先感谢您 – Ravikiran763 2015-04-20 10:24:15

回答

3

正如卢西亚诺的建议,我发现ChainedTransactionManager在完全工作实现:

<dependency> 
    <groupId>org.springframework.data</groupId> 
    <artifactId>spring-data-neo4j-tx</artifactId> 
    <version>2.2.0.RELEASE</version> 
</dependency> 

类名称:org.springframework.data.neo4j.transaction.ChainedTransactionManager

编辑

ChainedTransactionManager是现在是Spring Data Commons的一部分,截至version 1.6.1

+0

嘿,你们知道如果ChainedTransactionManager(现在移到Spring Data Commons)的许多实例可以从不同的线程使用来处理跨不同资源的事务吗?还是它必须是单身人士? – 2013-07-25 21:33:04

+1

@Giovnni Botta猜猜谁是我正在处理的旧代码? :) – 2015-05-01 16:39:05

+1

@ JohnHumphreys-w00te祝你好运! – 2015-05-01 16:56:55