使用消息存储库通道后保留时间戳标头



我使用消息存储库备份的队列通道,发现时间戳标头与原始值不一致,有没有办法保留它?

这是我的配置

<int:channel id="myChannel">
<int:queue message-store="myStore"/>
</int:channel>

提前感谢!

您正在寻找的内容已在版本5.0:https://github.com/spring-projects/spring-integration/pull/1916 中修复。

请注意我在 PR dfescription 末尾的短语:

通过此修复,我们在执行标准序列化过程时将消息按原样保留在存储中,而无需进行任何修改。

任何自定义序列化程序都应考虑使用 MutableMessageBuilder 如果需要保留 ID 和时间戳

默认的如下所示:

public Message<?> mapRow(ResultSet rs, int rowNum) throws SQLException {
return (Message<?>) this.deserializer.convert(this.lobHandler.getBlobAsBytes(rs, "MESSAGE_BYTES"));
}

因此,我们肯定会保留传入的IDTIMESTAMP.

最新更新