Spring Integration:如何保证交易两个jdbc-outbound-gateway?

时间:2014-10-17 07:03:22

标签: spring-integration

我有以下模式 my enterprise integration pattern

我有两种数据库。 一个是内部数据库,它从http入站网关保存来自5个json数据的数据。 Other是一个外部数据库,它保存5个jsons保存表中的最终反馈数据。

过程如下:


  • 一次交易

    ①每条消息都保存到每个表中,并将状态返回给发送数据的客户端。


  • 第二次交易

    ②如果完成5种数据接收,则激活一个服务激活器 查询5个表并制作3种精炼数据,这些数据将保存在外部数据库中。

    ③下一个连接的频道类型是发布 - 订阅频道。

    ④每种jdbc-outbound-gateway有3种订阅通道,用于将数据保存到外部数据库。 (有一个rowmapper进程来处理保存多行)

如何设置交易以保证? 请详细告诉我。

1 个答案:

答案 0 :(得分:1)

在上游某处(即在tx2的pub子通道之前)添加QueueChannel并使用<transactional/>轮询器来启动事务。

或者,插入交易网关...

<int:service-activator ... ref="txGw" />

<int:gateway ... service-interface="TX" />

public interface TX {
    @Transactional
    Message<?> exchange(Message<?> m);
}

在第二种情况下,您需要<tx:annotation-driven />启用交易。