У меня есть три разных маршрута, использующих Aggregator EIP для хранения.Для них определены разные хранилища.
При перезапуске моего приложения Camel на Tomcat мое приложение выдает исключение типа OverlappingFileLockException
.
Ошибка не всегда одинакова, она может отличаться в хранилище.
org.apache.camel.RuntimeCamelException: org.apache.camel.FailedToCreateRouteException: не удалось создать маршрутroute1: Route (route1) [[From [direct: brexit]] -> [Aggregate [true -> [L ... из-за OverlappingFileLockException в org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException (ObjectHelper.java:1826)по адресу org.apache.camel.spring.SpringCamelContext.start (SpringCamelContext.java:136) по адресу org.apache.camel.spring.SpringCamelContext.onApplicationEvent (SpringCamelContext.java:174) в org.springText.(SimpleApplicationEventMulticaster.java:172) по адресу org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener (SimpleApplicationEventMulticaster.java:165) по адресу org.springframework.context.event.Savaсontext.support.AbstractApplicationContext.publishEvent (AbstractApplicationContext.java:402) в org.springframework.context.support.AbstractApplicationContext.publishEvent (AbstractApplicationContext.java:359) Abstract.Apptext.su.896) в org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh (ServletWebServerApplicationContext.java:163) в org.springframework.context.support.AbstractAg.web.servlet.context.ServletWebServerApplicationContext.refresh (ServletWebServerApplicationContext.java:142) при org.springframework.boot.SpringApplication.refresh (SpringApplication.java:775) в org.springframework.boot.SpringApplication.refreshContext (SpringApplication.java:397) в org.springframework.boot.SpringApplication.run (SpringApplication.java:316) в org.springframework.boot.web.servlet.support.SpringBootServletInitializer.run (SpringBootServletInitializer.java:157) по адресу org.springframework.boot.web.servlet.support.SpringBootServletInitializer.createRootApplicationConotSpringBootServletInitializer.onStartup (SpringBootServletInitializer.java:91) в org.springframework.web.SpringServletContainerInitializer.onStartup (SpringServletContainerInitializer.java:171) org.tand.tb.catalina.util.LifecycleBase.start (LifecycleBase.java:150) в org.apache.catalina.core.ContainerBase.addChildInternal (ContainerBase.java:752) в org.apache.catalina.core.ContainerBase.addChild (ContainerBasej: 728) в org.apache.catalina.core.StandardHost.addChild (StandardHost.java:734) в org.apache.catalina.startup.HostConfig.deployWAR (HostConfig.java:988) в org.apache.catalina.startup.HostConfig $ DeployWar.run (HostConfig.java: 1860) на java.util.concurrent.Executors $ RunnableAdapter.call (неизвестный источник) на java.util.concurrent.FutureTask.run (неизвестный источник) на java.util.concurrent.ThreadPoolExecutor.runWorker (неизвестный источник) на java.util.concurrent.ThreadPoolExecutor $ Worker.run (неизвестный источник) в java.lang.Thread.run (неизвестный источник) Причина: org.apache.camel.FailedToCreateRouteException: не удалось создать маршрут route1: Route (route1) [[From [direct: brexit]] -> [Aggregate [true -> [L ... из-за исключения OverlappingFileLockException вorg.apache.camel.impl.RouteService.warmUp (RouteService.java:147) в
org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes (DefaultCamelContext.java:3953)
в
org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices (DefaultCamelContext.java:3860)
в
org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes (DefaultCamelContext.java:3646)
в
org.apache.camel.impl.DefaultCamelContext.doStartCamel (DefaultCamelContext.java:3489)
в
org.apache.camel.impl.DefaultCamelContext $ 4.call (DefaultCamelContext.java:3248)
в
org.apache.camel.impl.DefaultCamelContext $ 4.call (DefaultCamelContext.java:3244)
в
org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader (DefaultCamelContext.java:3267)
в
org.apache.camel.impl.DefaultCamelContext.doStart (DefaultCamelContext.java:3244)
в
org.apache.camel.support.ServiceSupport.start (ServiceSupport.java:72)
в
org.apache.camel.impl.DefaultCamelContext.start (DefaultCamelContext.java:3160)
в
org.apache.camel.spring.SpringCamelContext.start (SpringCamelContext.java:133)
... 29 общих кадров опущены
java.nio.channels.OverlappingFileLockException: ноль в
sun.nio.ch.SharedFileLockTable.checkList (неизвестный источник) в
sun.nio.ch.SharedFileLockTable.add (неизвестный источник) в
sun.nio.ch.FileChannelImpl.tryLock (неизвестный источник) в
java.nio.channels.FileChannel.tryLock (неизвестный источник) в
org.iq80.leveldb.impl.DbLock. (DbLock.java:47) в
org.iq80.leveldb.impl.DbImpl. (DbImpl.java:169) в
org.iq80.leveldb.impl.Iq80DBFactory.open (Iq80DBFactory.java:83) в
org.apache.camel.component.leveldb.LevelDBFile.start (LevelDBFile.java:175)
в
org.apache.camel.util.ServiceHelper.startService (ServiceHelper.java:75)
в
org.apache.camel.component.leveldb.LevelDBAggregationRepository.doStart (LevelDBAggregationRepository.java:412)
в
org.apache.camel.support.ServiceSupport.start (ServiceSupport.java:72)
в
org.apache.camel.util.ServiceHelper.startService (ServiceHelper.java:75)
в
org.apache.camel.util.ServiceHelper.startService (ServiceHelper.java:60)
в
org.apache.camel.util.ServiceHelper.startServices (ServiceHelper.java:104)
в
org.apache.camel.util.ServiceHelper.startServices (ServiceHelper.java:90)
в
org.apache.camel.processor.aggregate.AggregateProcessor.doStart (AggregateProcessor.java:1384)
в
org.apache.camel.support.ServiceSupport.start (ServiceSupport.java:72)
в
org.apache.camel.util.ServiceHelper.startService (ServiceHelper.java:75)
в
org.apache.camel.util.ServiceHelper.startService (ServiceHelper.java:60)
в
org.apache.camel.util.ServiceHelper.startServices (ServiceHelper.java:104)
в
org.apache.camel.util.ServiceHelper.startServices (ServiceHelper.java:90)
в
org.apache.camel.processor.RedeliveryErrorHandler.doStart (RedeliveryErrorHandler.java:1484)
в
org.apache.camel.support.ChildServiceSupport.start (ChildServiceSupport.java:44)
в
org.apache.camel.support.ChildServiceSupport.start (ChildServiceSupport.java:31)
в
org.apache.camel.util.ServiceHelper.startService (ServiceHelper.java:75)
в
org.apache.camel.util.ServiceHelper.startService (ServiceHelper.java:60)
в
org.apache.camel.util.ServiceHelper.startServices (ServiceHelper.java:104)
в
org.apache.camel.util.ServiceHelper.startServices (ServiceHelper.java:90)
в
org.apache.camel.processor.interceptor.DefaultChannel.doStart (DefaultChannel.java:160)
в
org.apache.camel.support.ServiceSupport.start (ServiceSupport.java:72)
в
org.apache.camel.util.ServiceHelper.startService (ServiceHelper.java:75)
в
org.apache.camel.util.ServiceHelper.startService (ServiceHelper.java:60)
в
org.apache.camel.util.ServiceHelper.startServices (ServiceHelper.java:104)
в
org.apache.camel.util.ServiceHelper.startServices (ServiceHelper.java:90)
вorg.apache.camel.processor.DelegateAsyncProcessor.doStart (DelegateAsyncProcessor.java:80)
в
org.apache.camel.support.ServiceSupport.start (ServiceSupport.java:72)
в
org.apache.camel.util.ServiceHelper.startService (ServiceHelper.java:75)
в
org.apache.camel.impl.RouteService.startChildService (RouteService.java:370)
в org.apache.camel.impl.RouteService.doWarmUp (RouteService.java:196)
в org.apache.camel.impl.RouteService.warmUp (RouteService.java:145)
... 40 общих кадров пропущено
Все три маршрута используют LevelDBAggregationRepository
, используя разные repositoryName
и persistenFileName
, например:
LevelDBAggregationRepository shuttleRepo = new LevelDBAggregationRepository("shuttleArt26",
"mifir/data/shuttle/article26.dat");
LevelDBAggregationRepository myTransRepoBrexit = new LevelDBAggregationRepository("jmstransBrexit",
"mifir/data/brexit/jmstransBrexit.dat");
LevelDBAggregationRepository myTransRepo = new LevelDBAggregationRepository("jmstrans",
"mifir/data/art26/jmstrans.dat");
При остановке и перезапуске службы Tomcat исключений не выдается.
Проблемы возникли после внедрения нескольких Агрегаторов…
Верблюд: 2.23.1
Пружинный ботинок: 2.1.3. РЕЛИЗ
Tomcat: 8,5 Windows
Что не так?
Тх
Mike