我从输入目录中读取第二个文件时出现了入站通道适配器的问题。适配器启动如下流程:适配器 - >频道 - >拆分器 - >频道...... - >数据库中。
Splitter每行读取文件进程,然后将文件复制到另一个目录并删除原始文件。
问题是,适配器正在按预期使用第一个文件,但是当它读取第二个文件时,它再次从第一个文件发送消息(第一个文件不再在输入目录中)。
注意:第一个通道持续存在ActiveMQ队列。 Ack当地。
配置:
<int-file:inbound-channel-adapter id="filesIn" channel="reinjectionChannel" filename-regex="reinyeccion[0-9]{8}.txt"
directory="${input.directory.reinyeccion}" prevent-duplicates="true" />
<jms:channel id="reinjectionChannel" queue="reinjectionChannelQueue">
<jms:interceptors>
<int:wire-tap channel="reinjectionLoggingChannel"/>
</jms:interceptors>
</jms:channel>
<int:splitter input-channel="reinjectionChannel" method="split"
output-channel="inputChannel" ref="reinjectionSplitterBean" />
<int:channel id="inputChannel" >
<int:interceptors>
<int:wire-tap channel="inputLoggingChannel"/>
</int:interceptors>
</int:channel>
日志:
org.springframework.integration.handler.LoggingHandler handleMessageInternal INFO (BBR) reinjectionLoggingChannel \tmp\concentrador\files\input\reinyeccion20151109.txt
org.springframework.integration.handler.LoggingHandler handleMessageInternal INFO (BBR) reinjectionLoggingChannel \tmp\concentrador\files\input\reinyeccion20151108.txt
感谢您的帮助。
答案 0 :(得分:0)
我找到了,我需要清除拆分器返回的消息列表。