使用邮件存储通道后保留时间戳标头

时间:2018-06-02 02:24:54

标签: spring-integration

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

这是我的配置

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

提前感谢!

1 个答案:

答案 0 :(得分:1)

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

在PR dfescription结束时注意我的短语:

  

使用此修复程序,当我们执行标准序列化过程时,我们会在商店中保留消息,而不进行任何修改。

     

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

默认的是这样的:

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

因此,我们明确保留传入的IDTIMESTAMP