Dear Camel group,
Maybe I missed something.
But in my testcase/environment the JMS Endpoint does not stream and throws
an Java Heap Exception:
I have used a simple Apache Camel 3.22.0 Spring boot Route:
My JMS is a current: Red Hat AMQ Broker 7.11.0 (locally setup as cluster)
The FTP is local org.apache.ftpserver
In the example below it throws an Java Heap error. If I replace JMS with
direct it works.
Any help would be appreciated.
public void configure() {
//from("ftp:admin:admin@localhost:9999?filename=SmallFile.data&noop=true&streamDownload=true&stepwise=false")
from("ftp:admin:admin@localhost:9999?filename=BigFile.data&noop=true&streamDownload=true&stepwise=false")
.routeId("Sending")
.doTry()
.to("jms:testjms_q?streamMessageTypeEnabled=true")
.doCatch(Throwable.class)
.process(exchange -> {
System.err.println("ERROR:" + exceptionMessage());
})
//.to("direct:process")
.log("Successfully finished exchange");
from("jms:testjms_q")
//from("direct:process")
.routeId("Receiving Route")
.split().tokenize(",").streaming()
.process(exchange -> {
Long lineNumber =
exchange.getProperty("CamelSplitIndex", Long.class);
if ((lineNumber + 1) % 1000000 == 0) {
exchange.getIn().getBody(String.class);
log.info("streamed Line {}: {}", lineNumber + 1,
exchange.getIn().getBody(String.class));
}
})
.end()
.log("Finished");
}