Сплиттер и транзитный верблюжий маршрут - PullRequest
0 голосов
/ 02 апреля 2020

Я сделал следующий маршрут для атомарной обработки данных (с той же транзакцией)

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

Когда в файле в .txt меньше записей (500 записей ), Я обнаружил, что все 500 записей фиксируются в OUTQUEUE одновременно. Это желаемое поведение.

Но когда файл в .txt содержит 10K или более записей, я получаю исключение, и все откатывается. Файл in.txt остается в каталоге и больше не опрашивается.

Вот полная трассировка стека

java .lang.StackOverflowError: null в 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] at org.springf ramework.boot.loader.LaunchedURLClassLoader.loadClass (LaunchedURLClassLoader. java: 92) ~ [CamelDemoApp-0.0.1-SNAPSHOT.jar: 0.0.1-SNAPSHOT] в java .lang.ClassLoader.loadClass (ClassLoader. ClassLoader. 1041 *: 351) ~ [na: 1.8.0_231] в ch.qos.logback.classi c .spi.LoggingEvent. (LoggingEvent. java: 119) ~ [logback-classi c -1.2.3 .jar! /: na] at ch.qos.logback.classi c .Logger.buildLoggingEventAndAppend (Logger. java: 419) ~ [logback-classi c -1.2.3.jar! /: na] в ch.qos.logback.classi c .Logger.filterAndLog_0_Or3Plus (Logger. java: 383) ~ [logback-classi c -1.2.3.jar! /: na] в ch.qos.logback. classi c .Logger.warn (Logger. java: 692) ~ [logback-classi c -1.2.3.jar! /: na] at 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] в орг. apache .camel.processor.CamelInternalProcessor $ Asyn cAfterTask.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] в орг. apache .camel.processor.CamelInternalProcessor.process (CamelInternalProcessor. java: 286) ~ [camel- base-3.1.0.jar! /: 3.1.0] в орг. apache .camel.processor.MulticastProcessor $ MulticastState.lambda $ run $ 1 (MulticastProcessor. java: 352) ~ [camel-base-3.1. 0.jar! /: 3.1.0] at org. apache .camel.util.concurrent.AsyncCompletionService $ Task.run (AsyncCompletionService. java: 150) ~ [camel-util-3.1.0.jar! / : 3.1.0] at or.. apache .camel.impl.engine.DefaultReactiveExecutor $ Worker.schedule (DefaultReactiveExecutor. java: 153) ~ [camel-base-3.1.0.jar! /: 3.1.0] в орг. apache .camel.impl.engine.DefaultReactiveExecutor.schedule (DefaultReactiveExecutor. java: 55) ~ [camel-base-3.1.0.jar! /: 3.1.0] в орг. apache. camel.processor.CamelInternalProcessor $ AsyncAfterTask.done (CamelInternalProcessor. java: 186) ~ [camel-base-3.1.0.jar! /: 3.1.0] в орг. apache .camel.spring.spi.TransactionErrorHandler.process (TransactionErrorHandler. java: 126) ~ [camel-spring-3.1. 0.jar! /: 3.1.0] в орг. apache .camel.processor.CamelInternalProcessor.process (CamelInternalProcessor. java: 286) ~ [camel-base-3.1.0.jar! /: 3.1.0 ] at org. apache .camel.processor.MulticastProcessor $ MulticastState.lambda $ run $ 1 (MulticastProcessor. java: 352) ~ [camel-base-3.1.0. jar! /: 3.1.0] at org. apache .camel.util.concurrent.AsyncCompletionService $ Task.run (AsyncCompletionService. java: 150) ~ [camel-util-3.1.0.jar! /: 3.1 .0] в орг. apache .camel.impl.engine.DefaultReactiveExecutor $ Worker.schedule (DefaultReactiveExecutor. java: 153) ~ [camel-base-3.1.0.jar! /: 3.1.0] в орг . apache .camel.impl.engine.DefaultReactiveExecutor.schedule (DefaultReactiveExecutor. java: 55) ~ [camel-base-3.1.0.jar! /: 3.1.0] в орг. apache .camel. processor.CamelInternalProcessor $ AsyncAfterTask.done (CamelInternalProcessor. java: 186) ~ [camel-base-3.1.0.jar! /: 3.1.0] в орг. 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] в орг. apache .camel.processor.MulticastProcessor $ MulticastState.lambda $ run $ 1 (MulticastProcessor. java: 352) ~ [camel- base-3.1.0.jar! /: 3.1.0] в орг. apache .camel.util.concurrent.Asy ncCompletionService $ 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] в орг. apache .camel.impl.engine.DefaultReactiveExecutor.schedule (DefaultReactiveExecutor. java: 55) ~ [camel-base-3.1.0.jar! /: 3.1.0] в орг. apache .camel.processor.CamelInternalProcessor $ AsyncAfterTask.done (CamelInternalProcessor. java: 186) ~ [верблюд-база -3.1.0.jar! /: 3.1.0] в орг. apache .camel.spring.spi.TransactionErrorHandler.process (TransactionErrorHandler. java: 126) ~ [camel-spring-3.1.0.jar! /:3.1.0] в орг. apache .camel.processor.CamelInternalProcessor.process (CamelInternalProcessor. java: 286) ~ [camel-base-3.1.0.jar! /: 3.1.0] в орг. apache .camel.processor.MulticastProcessor $ MulticastState.lambda $ run $ 1 (MulticastProcessor. java: 352) ~ [camel-base-3.1.0.jar! /: 3.1.0] в орг. apache. camel.util.concurrent.AsyncCompletionService $ Task.run (AsyncCompletionService. java: 150) ~ [camel-util-3.1.0.jar! /: 3.1.0] в орг. apache .camel.impl.engine.DefaultReactiveExecutor $ Worker.schedule (DefaultReactiveExecutor. java: 153 ) ~ [camel-base-3.1.0.jar! /: 3.1.0] в орг. apache .camel.impl.engine.DefaultReactiveExecutor.schedule (DefaultReactiveExecutor. java: 55) ~ [camel-base- 3.1.0.jar! /: 3.1.0] at org. apache .camel.processor.CamelInternalProcessor $ AsyncAfterTask.done (CamelInternalProcessor. java: 186) ~ [camel-base-3.1.0.jar! / : 3.1.0]

...