Spring integration Spring集成出站通道适配器和数据库持久性
我正在开发一个应用程序,它使用出站通道适配器将消息发布到队列。有一个新的要求,即在消息处理过程中生成的唯一id应在队列上成功发布后保留到数据库中,而无需等待任何答复 有人能告诉我最好的方法是什么吗 这就是我现有应用程序中的内容Spring integration Spring集成出站通道适配器和数据库持久性,spring-integration,Spring Integration,我正在开发一个应用程序,它使用出站通道适配器将消息发布到队列。有一个新的要求,即在消息处理过程中生成的唯一id应在队列上成功发布后保留到数据库中,而无需等待任何答复 有人能告诉我最好的方法是什么吗 这就是我现有应用程序中的内容 <int:gateway id="writerGateway" service-interface="CustomService" default-request-channel="writerChannel"> </int:gateway> &
<int:gateway id="writerGateway" service-interface="CustomService" default-request-channel="writerChannel">
</int:gateway>
<int-jms:outbound-channel-adapter channel="writerChannel" jms-template="jmsTemplate" destination-name="${queueName}" extract-payload="true"/>
<int:channel id="writerChannel">
<int:interceptors>
<int:wire-tap channel="writerLogger"/>
</int:interceptors>
</int:channel>
<int:logging-channel-adapter id="writerLogger" logger-name="writerLogger" level="INFO" expression="'Sending ' + payload?.size() + ' events'"/>
任何帮助都将不胜感激
谢谢,
AK制作
writerChannel
a
并向其订阅第二个流(order=“2”
),例如transformer->jdbc出站通道适配器。在jms适配器上设置order=“1”
,如果jms发送成功,将调用第二个流
或者,按照建议使用
,我将writerChannel更改为publish-subscribe频道,然后使用。我在这里面临一个问题,因为原始负载被转换为XML。我可以使用claim check-in存储原始副本,但我不知道如何连接jms出站通道适配器和jdbc出站通道适配器,因为它们的输入消息有不同的通道。请不要重复已经回答的问题;最好重新开始。您可以使用标头enricher(
将有效负载的副本保存在标头中。稍后,您可以直接访问标头或使用转换器还原payloasd。