Search
Calendar
June 2025
S M T W T F S
« May    
1234567
891011121314
15161718192021
22232425262728
2930  
Archives

Posts Tagged ‘component’

PostHeaderIcon Mule: File transport reads many times the same file

Case
With Mule ESB 2.2.1, I use a classic <file:inbound-endpoint>:

<file:inbound-endpoint path="${fromPath}"
 pollingFrequency="3000" fileAge="5000"
 moveToDirectory="${moveToDirectory}"
 synchronous="true"
    >
    <transformers>
       <transformer ref="mySimpleCSVParser">
    </transformers>
  </file:inbound-endpoint>

When I launch the Mule with no component (entreprise layer), everything is OK: the file is loaded, parsed and moved. But when I introduce a minimal component, which does nothing, then the file is read many times. Mule ESB seems to loop indefinitely, reading the file many times, without deleting it from the directory.

INFO  2010-03-04 15:47:18,291 [connector.file.0.receiver.6] org.mule.transport.file.FileMessageReceiver: Lock obtained on file: C:\temp\myFile.txt

Fix

Firstly I tried to increase the pollingFrequency attribute, assuming that the file had not yet been completely parsed when another cycle of “load-parse-move”. But it did not fix the issue.

Indeed, the problem was not related to the component layer, but to the parser itself. To fix the issue, you have to ensure the InputStream is properly closed in your Transformer layer:

try
 {
inputStream.close();
return  answer;
} catch (IOException e)
 {
throw new TransformerException((Message)null, e);
 }