我使用spring集成通过JMS将信息发送到其他系统。目前在系统中我们有以下步骤:
一个。那么如果在(2)发送JMS失败怎么办?我们如何知道并回滚数据库? 湾如果在(3)提交失败怎么办?我们如何回滚?
代码或示例配置示例会有所帮助。
由于 GM
答案 0 :(得分:3)
您可以使用Spring Transaction Synchronization(由Spring Integration支持)来同步这两个事务;这提供了Dr. Dave Syer's Javaworld Article中讨论的Best Effort 1PC。如果您需要绝对保证,则可能需要使用XA。
答案 1 :(得分:3)
您也可以使用Spring Data的ChainedTransactionManager for Best Effort 1PC。这和XA一样安全,但你必须处理接收方的重复消息,如果不是两个系统都一致地使用XA,你必须这样做。这个blog post描述了如何使用尽力而为1PC来分离传入和传出的事务处理。