首页 文章

如何使流程事务?

提问于
浏览
0

我正在使用JMSTrnsactionManager,它能够从队列中读取消息并持久化DB,然后将消息发布到队列/主题 . 当任何网关/适配器出现故障时,我想回滚整个事务并从数据库回滚数据 . 我正在使用带有消息驱动通道适配器的Spring Integration框架来读取队列和出站网关,以便持久保存到DB和出站适配器以发布到主题 . 使用的数据源是CombopooledDataSource . 如何在单个事务中执行上述所有操作?

1 回答

  • 1

    您不应该在入站适配器上使用 JmsTransactionManager - 如果您希望同步数据库事务(我在other question中指出的文章中的ala Best Effort 1PC ),您应该将JDBC事务管理器添加到消息驱动的适配器 . 您还需要在适配器上设置 acknowledge="transacted" .

    出站JMS适配器将自动使用收到消息的相同事务会话 .

    将JDBC事务管理器添加到消息驱动的适配器将使DB事务与JMS事务同步(在JMS事务之前立即提交它) .

相关问题