Spring集成 - Inbount Channel Adapter在读取新文件时再次发送最后一个文件

时间:2015-11-13 14:33:36

标签: spring spring-integration

我从输入目录中读取第二个文件时出现了入站通道适配器的问题。适配器启动如下流程:适配器 - >频道 - >拆分器 - >频道...... - >数据库中。

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我找到了,我需要清除拆分器返回的消息列表。