Oh, sorry. that's right, it is 64 MB. and I tried with 16, 32, 64 and 128 MB. I will try the buffer size option of the file-comp. to see if it solves the problem. Thanks, Farhad S.
Claus Ibsen-2 wrote: > > On Fri, Nov 27, 2009 at 2:26 PM, shirazi <m...@farhad.eu> wrote: >> >> That's probably the case. I've tried with different buffer sizes (though >> not >> 0), from 16 to 128 KB. I got the best performance with buffer of 64KB, on >> Linux Debian with 4 Gigs RAM, and files larger than 3 Gigs. >> That would be great, if one could specify the buffer-size for the "file" >> component. >> > > You buffer size was 64 * 1024 * 1024 which is 64 K * K = 64 MB. Or is > there something that play tricks on me? > > The file component already have a bufferSize option with a default of > 128kb > http://camel.apache.org/file2.html > > So you can use that to set what you want to use. > > > >> -Farhad S. >> >> >> Claus Ibsen-2 wrote: >>> >>> On Fri, Nov 27, 2009 at 2:00 PM, shirazi <m...@farhad.eu> wrote: >>>> >>>> Sure. I have attached the file. >>>> Actually I use from->to components for transfering files and I guess it >>>> copies the file, rather than moving. >>>> >>> >>> Ah makes more sense for copying to leverage NIO. >>> >>> Camel does this also but I can see that it may hit that 2gb limit as >>> it doesnt transfer in a loop using a lower buffer. >>> >>> It was doing it in a one liner >>> in.transferTo(0, in.size(), out); >>> >>> I wonder if you really must do that in a loop to avoid any 2gb limit >>> or the likes? >>> >>> >>>> Thanks, >>>> Farhad S. >>>> http://old.nabble.com/file/p26542125/Nio.java Nio.java >>>> >>>> >>>> Claus Ibsen-2 wrote: >>>>> >>>>> On Fri, Nov 27, 2009 at 1:37 PM, shirazi <m...@farhad.eu> wrote: >>>>>> >>>>>> Wau... thanks for that. I don't understand how I could miss it, cause >>>>>> i >>>>>> searched a lot for such a feature. >>>>>> >>>>>> Another thing that I have experienced in 2.0, is that the "file" >>>>>> component >>>>>> is unable to move/copy files larger than 2Gigs, such large files are >>>>>> cut >>>>>> around 2 Gigs limit. Now, I'm not sure if it has anything to do with >>>>>> the >>>>>> OS >>>>>> or the filesystems or what. I have seen it both in Linux (debian) and >>>>>> Mac >>>>>> OS >>>>>> X. And I don't understand either, why the file component does not use >>>>>> the >>>>>> NIO api or at least we don't have an option to tell it use the NIO >>>>>> api >>>>>> instead. >>>>>> Anyway, for now I've solved the problem by using a smiple component >>>>>> instead >>>>>> of the "file" comp. to move/copy files using the NIO api. It is much >>>>>> faster >>>>>> and it has no problem with very large files. >>>>>> >>>>> >>>>> For move it uses java.io.File rename and are you saying its not >>>>> optimized for the underlying OS? >>>>> I would assume that it could move a 2gb file in no time if the file is >>>>> on the same share. >>>>> >>>>> Can you share your code that you are using? >>>>> >>>>> >>>>>> Bests, >>>>>> Farhad S. >>>>>> >>>>>> >>>>>> Claus Ibsen-2 wrote: >>>>>>> >>>>>>> On Fri, Nov 27, 2009 at 1:12 PM, shirazi <m...@farhad.eu> wrote: >>>>>>>> >>>>>>>> Hi, >>>>>>>> Ok, I guess I should rather provide an AggregationStrategy. >>>>>>>> The reason why I use a timer is that when I use the ftp endpoint, >>>>>>>> it >>>>>>>> starts >>>>>>>> to fetch everything that is on the ftp in the first call and that's >>>>>>>> not >>>>>>>> what >>>>>>>> i want, because I'm processing files over 3 Gigs and there are many >>>>>>>> of >>>>>>>> them. >>>>>>>> Then I figured that by using a timer, i could have ftp to download >>>>>>>> one >>>>>>>> file >>>>>>>> at a time!! >>>>>>>> What I basically need is to somehow tell the ftp, how many files I >>>>>>>> want >>>>>>>> to >>>>>>>> fetch at a time. This is probably doable now in camel-2.1 by using >>>>>>>> the >>>>>>>> "ThrottlingInflightRoutePolicy", which i havn't tried yet. >>>>>>>> Do you have any suggestions? >>>>>>> >>>>>>> Yeah the FTP component extends the File component so you got all the >>>>>>> options from the file component as well >>>>>>> http://camel.apache.org/file2.html >>>>>>> >>>>>>> And there is a maxMessagesPerPoll you can use to tell how many files >>>>>>> you want at most to poll. For example = 1 in your use. >>>>>>> >>>>>>> And that option is avail in 2.0 also. >>>>>>> >>>>>>> In fact all these are as they are batch polling consumers >>>>>>> http://camel.apache.org/batch-consumer.html >>>>>>> >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> Bests, >>>>>>>> Farhad S. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Claus Ibsen-2 wrote: >>>>>>>>> >>>>>>>>> Hi >>>>>>>>> >>>>>>>>> BTW why are you using a timer -> ftp when the ftp have a build in >>>>>>>>> timer? >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Fri, Nov 27, 2009 at 12:55 PM, shirazi <m...@farhad.eu> wrote: >>>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> Please consider the following route: >>>>>>>>>> >>>>>>>>>> from("timer://someTrigger?delay=30000&fixedRate=true&period=300000"). >>>>>>>>>> pollEnrich("ftp://cmoreFtp?binary=true&localWorkDirectory=/tmp&idempotent=true&idempotentRepository=#caStreams", >>>>>>>>>> 10000). >>>>>>>>>> to("file:///tmp/vw/cmore?tempPrefix=.inprogress"); >>>>>>>>>> >>>>>>>>>> The pollEnrich cast a NullPointerException in camel-2.0, if there >>>>>>>>>> is >>>>>>>>>> nothing >>>>>>>>>> to fetch from the ftp. I got rid of the exception by a >>>>>>>>>> "try-catch(NullpointerExcpetion.class).stop()" around the route. >>>>>>>>>> Now >>>>>>>>>> in >>>>>>>>>> camel-2.1-SNAPSHOT, I get the following exception on the "to" >>>>>>>>>> endpoint: >>>>>>>>>> ================= >>>>>>>>>> 12:37:06,899 INFO [Tracer] >>> --> >>>>>>>>>> file:///tmp/vw/cmore?tempPrefix=.inprogress_, Pattern:InOnly, >>>>>>>>>> Headers:{firedTime=Fri Nov 27 12:36:56 CET 2009}, >>>>>>>>>> Exception:org.apache.camel.component.file.GenericFileOperationFailedException: >>>>>>>>>> Cannot store file: >>>>>>>>>> /tmp/vw/cmore/.inprogress_02216f38-8ffc-4aec-b638-27229d857075 >>>>>>>>>> 12:37:06,899 INFO [Tracer] >>> --> >>>>>>>>>> file:///tmp/vw/cmore?tempPrefix=.inprogress_, Pattern:InOnly, >>>>>>>>>> Headers:{firedTime=Fri Nov 27 12:36:56 CET 2009}, >>>>>>>>>> Exception:org.apache.camel.component.file.GenericFileOperationFailedException: >>>>>>>>>> Cannot store file: >>>>>>>>>> /tmp/vw/cmore/.inprogress_02216f38-8ffc-4aec-b638-27229d857075 >>>>>>>>>> 12:37:06,899 ERROR [TimerConsumer] Cannot store file: >>>>>>>>>> /tmp/vw/cmore/.inprogress_02216f38-8ffc-4aec-b638-27229d857075 >>>>>>>>>> org.apache.camel.component.file.GenericFileOperationFailedException: >>>>>>>>>> Cannot >>>>>>>>>> store file: >>>>>>>>>> /tmp/vw/cmore/.inprogress_02216f38-8ffc-4aec-b638-27229d857075 >>>>>>>>>> at >>>>>>>>>> org.apache.camel.component.file.FileOperations.storeFile(FileOperations.java:204) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.component.file.GenericFileProducer.writeFile(GenericFileProducer.java:184) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:126) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.component.file.GenericFileProducer.process(GenericFileProducer.java:57) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:162) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.Pipeline.process(Pipeline.java:74) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:162) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:103) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:50) >>>>>>>>>> at java.util.TimerThread.mainLoop(Timer.java:512) >>>>>>>>>> at java.util.TimerThread.run(Timer.java:462) >>>>>>>>>> Caused by: org.apache.camel.InvalidPayloadException: No body >>>>>>>>>> available >>>>>>>>>> of >>>>>>>>>> type: java.io.InputStream on: Message: [Body is null]. Caused by: >>>>>>>>>> No >>>>>>>>>> type >>>>>>>>>> converter available to convert from type: null to the required >>>>>>>>>> type: >>>>>>>>>> java.io.InputStream with value null on the exchange: >>>>>>>>>> Exchange[Message: >>>>>>>>>> [Body >>>>>>>>>> is null]] >>>>>>>>>> at >>>>>>>>>> org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:103) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.util.ExchangeHelper.getMandatoryInBody(ExchangeHelper.java:116) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.component.file.FileOperations.storeFile(FileOperations.java:198) >>>>>>>>>> ... 29 more >>>>>>>>>> Caused by: org.apache.camel.NoTypeConversionAvailableException: >>>>>>>>>> No >>>>>>>>>> type >>>>>>>>>> converter available to convert from type: null to the required >>>>>>>>>> type: >>>>>>>>>> java.io.InputStream with value null >>>>>>>>>> at >>>>>>>>>> org.apache.camel.impl.converter.DefaultTypeConverter.mandatoryConvertTo(DefaultTypeConverter.java:126) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:101) >>>>>>>>>> ... 31 more >>>>>>>>>> ============ >>>>>>>>>> Now, I can remedy the situation by a try-catch block or an >>>>>>>>>> interceptor, >>>>>>>>>> but >>>>>>>>>> in my opinion this should be considered a bug in camel and it >>>>>>>>>> should >>>>>>>>>> silently ignore if there was nothing to fetch from the ftp. >>>>>>>>>> >>>>>>>>>> Bests, >>>>>>>>>> Farhad Shiraz >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> View this message in context: >>>>>>>>>> http://old.nabble.com/camel-casts-exception-when-there-is-nothing-to-fetch-from-the-ftp-endpoint-tp26541447p26541447.html >>>>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com. >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Claus Ibsen >>>>>>>>> Apache Camel Committer >>>>>>>>> >>>>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/ >>>>>>>>> Open Source Integration: http://fusesource.com >>>>>>>>> Blog: http://davsclaus.blogspot.com/ >>>>>>>>> Twitter: http://twitter.com/davsclaus >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> View this message in context: >>>>>>>> http://old.nabble.com/camel-casts-exception-when-there-is-nothing-to-fetch-from-the-ftp-endpoint-tp26541447p26541650.html >>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com. >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Claus Ibsen >>>>>>> Apache Camel Committer >>>>>>> >>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/ >>>>>>> Open Source Integration: http://fusesource.com >>>>>>> Blog: http://davsclaus.blogspot.com/ >>>>>>> Twitter: http://twitter.com/davsclaus >>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>>> View this message in context: >>>>>> http://old.nabble.com/camel-casts-exception-when-there-is-nothing-to-fetch-from-the-ftp-endpoint-tp26541447p26541877.html >>>>>> Sent from the Camel - Users mailing list archive at Nabble.com. >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Claus Ibsen >>>>> Apache Camel Committer >>>>> >>>>> Author of Camel in Action: http://www.manning.com/ibsen/ >>>>> Open Source Integration: http://fusesource.com >>>>> Blog: http://davsclaus.blogspot.com/ >>>>> Twitter: http://twitter.com/davsclaus >>>>> >>>>> >>>> >>>> -- >>>> View this message in context: >>>> http://old.nabble.com/camel-casts-exception-when-there-is-nothing-to-fetch-from-the-ftp-endpoint-tp26541447p26542125.html >>>> Sent from the Camel - Users mailing list archive at Nabble.com. >>>> >>>> >>> >>> >>> >>> -- >>> Claus Ibsen >>> Apache Camel Committer >>> >>> Author of Camel in Action: http://www.manning.com/ibsen/ >>> Open Source Integration: http://fusesource.com >>> Blog: http://davsclaus.blogspot.com/ >>> Twitter: http://twitter.com/davsclaus >>> >>> >> >> -- >> View this message in context: >> http://old.nabble.com/camel-casts-exception-when-there-is-nothing-to-fetch-from-the-ftp-endpoint-tp26541447p26542396.html >> Sent from the Camel - Users mailing list archive at Nabble.com. >> >> > > > > -- > Claus Ibsen > Apache Camel Committer > > Author of Camel in Action: http://www.manning.com/ibsen/ > Open Source Integration: http://fusesource.com > Blog: http://davsclaus.blogspot.com/ > Twitter: http://twitter.com/davsclaus > > -- View this message in context: http://old.nabble.com/camel-casts-exception-when-there-is-nothing-to-fetch-from-the-ftp-endpoint-tp26541447p26542472.html Sent from the Camel - Users mailing list archive at Nabble.com.