jms入站网关回复是否可以包含消息序列的所有消息

can a jms inbound gateway reply include all messages of a message sequence

我有一个 jms-inbound-gateway,它从 WebsphereMQ 代理读取请求并通过我的集成系统传递它们,returns 一个消息序列作为回复。

消息序列是通过在集合上应用拆分器获得的。它生成 63 条消息,如日志中所示。

问题是 WebsphereMQ 代理只收到最后一条消息。我不知道其他62条消息去了哪里。

是不是jms-inbound-gateway无法回复消息序列?

正确;网关适用于简单的 request/reply 场景。

但是,我希望第一条而不是最后一条消息是回复。

对于 return 多条消息的单个回复,您可以将它们聚合成一条消息,或者使用 message-driven-channel-adapter 用于入站,outbound-channel-adapter 用于 "replies".

编辑:

当网关收到对请求的多个响应时,returned 的响应取决于流的拓扑结构。对于完全同步的流程(整个过程 DirectChannels),最后一条消息将被 returned。对于异步流程(流程中的 QueueChannels 或 ExecutorChannels),它很可能是第一个,但存在竞争条件。

最重要的是网关只需要一个回复,对单个请求发送多个回复不会产生预期的行为。