Weblogic 12.2中的Apache Camel LRUCacheFactory死锁 [英] Apache Camel LRUCacheFactory deadlocks in Weblogic 12.2

查看:97
本文介绍了Weblogic 12.2中的Apache Camel LRUCacheFactory死锁的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试为基于Apache Camel的项目创建一个(Weblogic)WAR部署,该项目在嵌入的tomcat上运行良好.但是,当我启动服务器时,我注意到LRUCacheFactory中出现了死锁.

I'm trying to create a (Weblogic) WAR deployment for a Apache Camel based project which runs fine on tomcat embedded. However when I start the server, I'm noticing a deadlock in LRUCacheFactory.

所报告的错误如下所示:

The reported error is shown below:

Found one Java-level deadlock:
=============================
"Camel Thread #0 - LRUCacheFactory":
  waiting to lock monitor 0x85ec85a8 (object 0xb30c5c28, a weblogic.utils.classloaders.ChangeAwareClassLoader),
  which is held by "[STANDBY] ExecuteThread: '43' for queue: 'weblogic.kernel.Default (self-tuning)'"
"[STANDBY] ExecuteThread: '43' for queue: 'weblogic.kernel.Default (self-tuning)'":
  waiting to lock monitor 0x85e8f9a8 (object 0xd1eef340, a java.lang.Object),
  which is held by "Camel Thread #0 - LRUCacheFactory"

Java stack information for the threads listed above:
===================================================
"Camel Thread #0 - LRUCacheFactory":
    at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:81)
    - waiting to lock <0xb30c5c28> (a weblogic.utils.classloaders.ChangeAwareClassLoader)
    - locked <0xd1eef340> (a java.lang.Object)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:53)
    at org.apache.camel.support.LRUCacheFactory.newLRUCache(LRUCacheFactory.java:93)
    at org.apache.camel.support.LRUCacheFactory.lambda$warmUp$0(LRUCacheFactory.java:70)
    at org.apache.camel.support.LRUCacheFactory$$Lambda$132/22573581.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:748)
"[STANDBY] ExecuteThread: '43' for queue: 'weblogic.kernel.Default (self-tuning)'":
    at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:68)
    - waiting to lock <0xd1eef340> (a java.lang.Object)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:53)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at weblogic.utils.classloaders.GenericClassLoader.defineClassInternal(GenericClassLoader.java:1113)
    at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:1046)
    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:1038)
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:990)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:104)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:82)
    - locked <0xb30c5c28> (a weblogic.utils.classloaders.ChangeAwareClassLoader)
    - locked <0xd1da07d8> (a java.lang.Object)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:53)
    at org.apache.camel.support.LRUCacheFactory.newLRUWeakCache(LRUCacheFactory.java:171)
    at org.apache.camel.support.management.MBeanInfoAssembler.start(MBeanInfoAssembler.java:69)
    at org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:55)
    at org.apache.camel.support.management.DefaultManagementMBeanAssembler.doStart(DefaultManagementMBeanAssembler.java:117)
    at org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:86)
    - locked <0xd1ce1420> (a java.lang.Object)
    at org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:55)
    at org.apache.camel.impl.AbstractCamelContext.internalAddService(AbstractCamelContext.java:1359)
    at org.apache.camel.impl.AbstractCamelContext.doAddService(AbstractCamelContext.java:1315)
    at org.apache.camel.impl.AbstractCamelContext.doAddService(AbstractCamelContext.java:1310)
    at org.apache.camel.impl.AbstractCamelContext.setManagementMBeanAssembler(AbstractCamelContext.java:2489)
    at org.apache.camel.spring.SpringCamelContext.<init>(SpringCamelContext.java:71)
    at org.apache.camel.spring.SpringCamelContext.<init>(SpringCamelContext.java:75)
    at org.apache.camel.spring.javaconfig.CamelConfiguration.createCamelContext(CamelConfiguration.java:185)
    at org.apache.camel.spring.javaconfig.CamelConfiguration.camelContext(CamelConfiguration.java:160)
    at com.oracle.healthinsurance.integration.gateway.simmodule.SimmoduleConfigurator$SimmoduleConfiguration$$EnhancerBySpringCGLIB$$144970ea.CGLIB$camelContext$6(<generated>)
    at com.oracle.healthinsurance.integration.gateway.simmodule.SimmoduleConfigurator$SimmoduleConfiguration$$EnhancerBySpringCGLIB$$144970ea$$FastClassBySpringCGLIB$$345beb5.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363)
    at com.oracle.healthinsurance.integration.gateway.simmodule.SimmoduleConfigurator$SimmoduleConfiguration$$EnhancerBySpringCGLIB$$144970ea.camelContext(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:622)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:456)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1305)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1144)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
    at org.springframework.beans.factory.support.AbstractBeanFactory$$Lambda$47/28728726.getObject(Unknown Source)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    - locked <0xe4601dc0> (a java.util.concurrent.ConcurrentHashMap)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1247)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1167)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857)
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:509)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1305)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1144)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
    at org.springframework.beans.factory.support.AbstractBeanFactory$$Lambda$47/28728726.getObject(Unknown Source)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    - locked <0xe4601dc0> (a java.util.concurrent.ConcurrentHashMap)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:849)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:877)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
    - locked <0xe46023e0> (a java.lang.Object)
    at com.oracle.healthinsurance.integration.gateway.spi.AbstractInterfaceModuleConfigurator.configure(AbstractInterfaceModuleConfigurator.java:19)
    at com.oracle.healthinsurance.integration.gateway.impl.bootstrap.ParentChildServiceLoader.lambda$lightweightRootLoadedEventHandler$0(ParentChildServiceLoader.java:20)
    at com.oracle.healthinsurance.integration.gateway.impl.bootstrap.ParentChildServiceLoader$$Lambda$129/20173443.accept(Unknown Source)
    at java.lang.Iterable.forEach(Iterable.java:75)
    at com.oracle.healthinsurance.integration.gateway.impl.bootstrap.ParentChildServiceLoader.lightweightRootLoadedEventHandler(ParentChildServiceLoader.java:20)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:259)
    at org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:179)
    at org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:142)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:402)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:408)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:372)
    at com.oracle.healthinsurance.integration.gateway.webapp.GatewayWebApplicationInitializer.onStartup(GatewayWebApplicationInitializer.java:53)
    at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:171)
    at weblogic.servlet.internal.WebAppServletContext.initContainerInitializer(WebAppServletContext.java:1425)
    at weblogic.servlet.internal.WebAppServletContext.initContainerInitializers(WebAppServletContext.java:1364)
    at weblogic.servlet.internal.WebAppServletContext.initContainerInitializers(WebAppServletContext.java:1345)
    at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1917)
    - locked <0xe3382a10> (a weblogic.servlet.internal.WebAppServletContext)
    at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3101)
    at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1843)
    at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:884)
    at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360)
    at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
    at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138)
    at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:233)
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:228)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
    at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:78)
    at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:52)
    at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:752)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
    at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:262)
    at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:52)
    at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:90)
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:631)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:171)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:121)
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:348)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:907)
    at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1468)
    - locked <0xb3079aa8> (a java.util.ArrayList)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:459)
    at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:181)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:217)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:14)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:69)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:670)
    at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352)
    at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)
    at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)
    at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
    at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:644)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:415)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:355)

Found 1 deadlock.

我希望Apache Camel加载其组件而不会发生死锁.

I expect Apache Camel to load its components without the deadlock occurring.

推荐答案

以上内容是使用Apache Camel 3.0.0-M2进行的.降级到2.23.1之后-问题不再出现.因此,这可能与新版本的Apache Camel 3.0.0

The above was tried using Apache Camel 3.0.0-M2. After downgrading to 2.23.1 - the problem no longer appears. So this might be related to the new version of Apache Camel 3.0.0

这篇关于Weblogic 12.2中的Apache Camel LRUCacheFactory死锁的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆