Hello Claus, First issue got fixed after enabling the stream cache pool.
Could you please assist for 2nd one ? Thank you, Karthik On Tue, 6 May 2025, 10:35 am Claus Ibsen, <claus.ib...@gmail.com> wrote: > Hi > > Enable spool on stream caching > https://camel.apache.org/manual/stream-caching.html > > > On Tue, May 6, 2025 at 4:37 AM KARTHIK PRABHU N <karthikprabh...@gmail.com > > > wrote: > > > Hello Team, > > > > Good morning & hope you are doing fine ! > > > > I am working on a use-case / concept to generate, download and upload > very > > large file ( > 1GB file size <100GB) should support both binary and > > non-binary file type. To achieve this concept, I tried Camel’s File or > > Stream component to read / write file as stream and REST component that > > plugins to servlet component which exposes routes as REST endpoint. > > > > > > > > The download route designed to searches for given file and once found, > > streams the data to target file location ( intermediate step we can > ignore) > > as well as http response body. While testing the route using curl tool, > we > > observed multiple issues as listed below. > > > > > > > > 1. Route streams data to client perfectly unless the file size <= 2GB, > > beyond this size the route will throw below error. The exception > clearly > > indicates that JVM is trying to allocate an array with the size of > about > > 2.13 GB and java arrays are limited to max size of array index around > 2GB . > > I tried to understand how streams work internally but somehow, I am > lost. > > Could you please assist how I can handle this scenario may be read and > > publish data as chucks ? > > > > > > > > > > *java.lang.OutOfMemoryError: Required array length 2147483639 + 9 is too > > large at > > > java.base/jdk.internal.util.ArraysSupport.hugeLength(ArraysSupport.java:649) > > * > > > > *at > > > java.base/jdk.internal.util.ArraysSupport.newLength(ArraysSupport.java:642) > > * > > > > *at > > java.base/java.io > .ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:100) > > * > > > > *at > > java.base/java.io > .ByteArrayOutputStream.write(ByteArrayOutputStream.java:130)* > > > > *at > > > org.apache.camel.converter.stream.CachedOutputStream.write(CachedOutputStream.java:108) > > * > > > > *at java.base/java.io.InputStream.transferTo(InputStream.java:783) at > > org.apache.camel.util.IOHelper.copy(IOHelper.java:165)* > > > > > > > > > > > > 2. How to increase the download rate ? As the file size is large, the > > total time taken to complete the download is very long. I tried with > higher > > buffer range for file component & max response size in the servlet > consumer > > level but didn’t work. > > > > > > > > > > > > > > > > Could you please assist. Let us know if you need more details form > myside. > > > > > > > > Thank you, > > > > Karthik Prabhu > > > > > > > > > > > > -- > Claus Ibsen > ----------------- > @davsclaus > Camel in Action 2: https://www.manning.com/ibsen2 >