Camel文件camelLock阻止执行

时间:2014-11-27 15:05:03

标签: apache-camel

我有一个项目,例如我有一个简单的路由,从目录中取出文件并发送到ActiveMQ队列,但是一旦我启动应用程序,一些文件被传输,然后应用程序停止,然后完成传输所有文件。检查源文件夹时,会出现带有.camelLock扩展名的文件,并且不会继续。任何人都知道这个问题的解决方案吗?

路线如下:

<route trace="true">
    <from uri="file:src/testData"/>
    <to uri="jms:queue:input"/>
</route>

2 个答案:

答案 0 :(得分:0)

如果在处理文件时发生任何异常,该文件将不会被移动到.camel或已处理的文件夹。所以请添加例外部分,看看路线中发生了什么。

答案 1 :(得分:0)

在这种情况下,文件输入流可能无法正确关闭,这就是文件被锁定的原因(.camelLock)。正确关闭文件InputStream或交叉检查Camel inputendpoint端的代码,并尝试将其替换为其他适当的替代解决方案。

替代解决方案:

如果您无法在代码中找到开放流,请将以下参数应用于Apache camel路由。表现会更好。

min-height

在我的情况下,在Windows中表现更好。