我使用带有消息存储备份的队列通道,发现时间戳标头与原始值不一致,有没有办法保留它?
这是我的配置
<int:channel id="myChannel">
<int:queue message-store="myStore"/>
</int:channel>
提前感谢!
答案 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"));
}
因此,我们明确保留传入的ID
和TIMESTAMP
。