Hi Read locks over various file systems can be tricky. If you can then get the other party to write a 2nd done file when the file write is complete. Then you only start consuming the file if there is a "done" file as well.
Also you can try readLock=change which detects if the file size / date hasn't updated in a "period" then it assume the file write is done, and the consumer can pickup the file. On Mon, Apr 28, 2014 at 11:43 PM, rrajen2 <[email protected]> wrote: > Hi > Below is my envmt of Camel application deployment > > OS: Suse Linux 2.6.34.7-0.3 > File System nodes: Distributed file system based out of NAS mounted through > NFS. They are mounted on 2 Linux nodes though Camel only runs in one of the > node. > > There is a file reader as shown below: > > from("file:{{fmsSys.root.ClientFile.Mailbox}}?noop=true&recursive=true&sortBy=file:modified" > + > > "&idempotentKey=${file:name}-${file:size}-${date:now:yyyyMMddssSSS}" + > "&readLock=changed"+ > "&preMove={{fmsSys.root.File.InProgress.In}}/${file:name}" > + > > "&antInclude={{fmsSys.root.ClientFile.Mailbox.AntIncludeDir}}" + > > "&antExclude={{fmsSys.root.ClientFile.Mailbox.AntExcludeDir}}").routeId("CommonMailboxReader") > .routeId("ClientMailboxReader") > .setHeader(FMSHeaders.FILE_ORIGIN, > constant(FileOriginType.EXTERNAL)) > .setHeader(FMSHeaders.INBOUND_FILE_PATH, > header(Exchange.FILE_PATH)) > > .to("log:ClientMailboxReader?level=DEBUG&showExchangeId=true&showHeaders=true&showProperties=true&multiline=true&showFiles=true") > .threads() > .to("seda:RegisterFile") > ; > > Issue: > If the file size is large (about 750MB) whereby you have a slow writer and > if FTP transferred/Linux copied to Camel Linux node, the above code works > fine by getting the ExclusiveRead Lock and doing the premove of the file > completely. However if the same file is FTP transferrered/Linux copied to > non Camel Linux node (acting just as a file mount), it does a premove > wrongly whereby only partial file is moved (ie about 500MB). > > Options tried: > 1)readLock=markerFile //doesn't even work > 2)readLock=rename// doesn't work even on the Camel linux node > 3)I did read the section titled "Consuming files from folders where others > drop files directly" on the page http://camel.apache.org/file2.html, which > didn't assist me further. > > Please advice what could be done to make it work? > > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/Issues-with-Exclusive-File-ReadLock-tp5750661.html > Sent from the Camel - Users mailing list archive at Nabble.com. -- Claus Ibsen ----------------- Red Hat, Inc. Email: [email protected] Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen hawtio: http://hawt.io/ fabric8: http://fabric8.io/
