分流器和交易骆驼路线

时间:2020-04-02 05:30:38

标签: apache-camel spring-camel

我遵循以下路线,以原子方式(在同一事务中)处理数据

from("file://home/input?moveFailed=.error&fileName=in.txt") .transacted() .split(body.tokenize("\n")).streaming() .to("jms:queue:OUTQUEUE")

当in.txt文件的记录较少(500条记录)时,我发现所有500条记录都已提交 一次全部在OUTQUEUE中。这是期望的行为。

但是,当in.txt文件包含10K或更多记录时,我就遇到异常了, 一切都在回滚。文件in.txt保留在目录中并且未轮询 再次。

这是完整的堆栈跟踪

java.lang.StackOverflowError:空 在java.lang.ClassLoader.defineClass1(本机方法)〜[na:1.8.0_231] 在java.lang.ClassLoader.defineClass(ClassLoader.java:756)〜[na:1.8.0_231] 在java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)〜[na:1.8.0_231] 在java.net.URLClassLoader.defineClass(URLClassLoader.java:468)〜[na:1.8.0_231] 在java.net.URLClassLoader.access $ 100(URLClassLoader.java:74)〜[na:1.8.0_231] 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:369)〜[na:1.8.0_231] 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:363)〜[na:1.8.0_231] 在java.security.AccessController.doPrivileged(本机方法)〜[na:1.8.0_231] 在java.net.URLClassLoader.findClass(URLClassLoader.java:362)〜[na:1.8.0_231] 在java.lang.ClassLoader.loadClass(ClassLoader.java:418)〜[na:1.8.0_231] 在org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:92)〜[CamelDemoApp-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] 在java.lang.ClassLoader.loadClass(ClassLoader.java:351)〜[na:1.8.0_231] 在ch.qos.logback.classic.spi.LoggingEvent。(LoggingEvent.java:119)〜[logback-classic-1.2.3.jar!/:na] 在ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:419)〜[logback-classic-1.2.3.jar!/:na] 在ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)〜[logback-classic-1.2.3.jar!/:na] 在ch.qos.logback.classic.Logger.warn(Logger.java:692)〜[logback-classic-1.2.3.jar!/:na] 在org.apache.camel.impl.engine.DefaultReactiveExecutor $ Worker.schedule(DefaultReactiveExecutor.java:155)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.impl.engine.DefaultReactiveExecutor.schedule(DefaultReactiveExecutor.java:55)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.processor.CamelInternalProcessor $ AsyncAfterTask.done(CamelInternalProcessor.java:186)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:126)〜[camel-spring-3.1.0.jar!/:3.1.0] 在org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:286)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.processor.MulticastProcessor $ MulticastState.lambda $ run $ 1(MulticastProcessor.java:352)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.util.concurrent.AsyncCompletionService $ Task.run(AsyncCompletionService.java:150)〜[camel-util-3.1.0.jar!/:3.1.0] 在org.apache.camel.impl.engine.DefaultReactiveExecutor $ Worker.schedule(DefaultReactiveExecutor.java:153)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.impl.engine.DefaultReactiveExecutor.schedule(DefaultReactiveExecutor.java:55)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.processor.CamelInternalProcessor $ AsyncAfterTask.done(CamelInternalProcessor.java:186)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:126)〜[camel-spring-3.1.0.jar!/:3.1.0] 在org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:286)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.processor.MulticastProcessor $ MulticastState.lambda $ run $ 1(MulticastProcessor.java:352)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.util.concurrent.AsyncCompletionService $ Task.run(AsyncCompletionService.java:150)〜[camel-util-3.1.0.jar!/:3.1.0] 在org.apache.camel.impl.engine.DefaultReactiveExecutor $ Worker.schedule(DefaultReactiveExecutor.java:153)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.impl.engine.DefaultReactiveExecutor.schedule(DefaultReactiveExecutor.java:55)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.processor.CamelInternalProcessor $ AsyncAfterTask.done(CamelInternalProcessor.java:186)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:126)〜[camel-spring-3.1.0.jar!/:3.1.0] 在org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:286)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.processor.MulticastProcessor $ MulticastState.lambda $ run $ 1(MulticastProcessor.java:352)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.util.concurrent.AsyncCompletionService $ Task.run(AsyncCompletionService.java:150)〜[camel-util-3.1.0.jar!/:3.1.0] 在org.apache.camel.impl.engine.DefaultReactiveExecutor $ Worker.schedule(DefaultReactiveExecutor.java:153)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.impl.engine.DefaultReactiveExecutor.schedule(DefaultReactiveExecutor.java:55)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.processor.CamelInternalProcessor $ AsyncAfterTask.done(CamelInternalProcessor.java:186)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:126)〜[camel-spring-3.1.0.jar!/:3.1.0] 在org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:286)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.processor.MulticastProcessor $ MulticastState.lambda $ run $ 1(MulticastProcessor.java:352)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.util.concurrent.AsyncCompletionService $ Task.run(AsyncCompletionService.java:150)〜[camel-util-3.1.0.jar!/:3.1.0] 在org.apache.camel.impl.engine.DefaultReactiveExecutor $ Worker.schedule(DefaultReactiveExecutor.java:153)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.impl.engine.DefaultReactiveExecutor.schedule(DefaultReactiveExecutor.java:55)〜[camel-base-3.1.0.jar!/:3.1.0] 在org.apache.camel.processor.CamelInternalProcessor $ AsyncAfterTask.done(CamelInternalProcessor.java:186)〜[camel-base-3.1.0.jar!/:3.1.0]

0 个答案:

没有答案