Druid資料庫連線池問題,ERROR c.alibaba.druid.poo l.DruidDataSource
14:07:41.550 [Druid-ConnectionPool-Destroy-1326667259] ERROR c.alibaba.druid.poo l.DruidDataSource - abandon connection, owner thread: localhost-startStop-1, con nected time nano: 1622727633715467, open stackTrace at java.lang.Thread.getStackTrace(Thread.java:1559) at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataS ource.java:1014) at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterCha inImpl.java:4544) at com.alibaba.druid.filter.logging.LogFilter.dataSource_getConnection(L ogFilter.java:827) at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterCha inImpl.java:4540) at com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(Sta tFilter.java:662) at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterCha inImpl.java:4540) at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource. java:938) at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource. java:930) at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource. java:102) at com.github.pagehelper.PageHelper.getUrl(PageHelper.java:283) at com.github.pagehelper.PageHelper.getSqlUtil(PageHelper.java:309) at com.github.pagehelper.PageHelper.initSqlUtil(PageHelper.java:265) at com.github.pagehelper.PageHelper.intercept(PageHelper.java:252) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61) at com.sun.proxy.$Proxy28.query(Unknown Source) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(Defau ltSqlSession.java:148) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(Defau ltSqlSession.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(Sq lSessionTemplate.java:434) at com.sun.proxy.$Proxy22.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.j ava:231) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.ja va:137) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:75) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:53) at com.sun.proxy.$Proxy25.getJobList(Unknown Source) at com.neusoft.sr.framework.schedule.service.impl.ScheduleJobServiceImpl .initScheduleJob(ScheduleJobServiceImpl.java:39) at com.neusoft.sr.framework.schedule.evnent.ScheduleJobInit.init(Schedul eJobInit.java:22) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBea nPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.ja va:349) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBea nPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPost Processor.java:300) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBea nPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProc essor.java:133) at org.springframework.beans.factory.support.AbstractAutowireCapableBean Factory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanF actory.java:407) at org.springframework.beans.factory.support.AbstractAutowireCapableBean Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1545) at org.springframework.beans.factory.support.AbstractAutowireCapableBean Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) at org.springframework.beans.factory.support.AbstractAutowireCapableBean Factory.createBean(AbstractAutowireCapableBeanFactory.java:475) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb ject(AbstractBeanFactory.java:304) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr y.getSingleton(DefaultSingletonBeanRegistry.java:228) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe an(AbstractBeanFactory.java:300) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:195) at org.springframework.beans.factory.support.DefaultListableBeanFactory. preInstantiateSingletons(DefaultListableBeanFactory.java:703) at org.springframework.context.support.AbstractApplicationContext.finish BeanFactoryInitialization(AbstractApplicationContext.java:760) at org.springframework.context.support.AbstractApplicationContext.refres h(AbstractApplicationContext.java:482) at org.springframework.web.context.ContextLoader.configureAndRefreshWebA pplicationContext(ContextLoader.java:403) at org.springframework.web.context.ContextLoader.initWebApplicationConte xt(ContextLoader.java:306) at org.springframework.web.context.ContextLoaderListener.contextInitiali zed(ContextLoaderListener.java:106) at org.apache.catalina.core.StandardContext.listenerStart(StandardContex t.java:5157) at org.apache.catalina.core.StandardContext.startInternal(StandardContex t.java:5680) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase .java:1018) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:99 4) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.jav a:1296) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig .java:2039) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51 1) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor .java:624) at java.lang.Thread.run(Thread.java:748)
解決辦法:將removeAbandonedTimeoutMillis這個時間配置調大
配置 預設值 說明 removeAbandoned false 是否強制關閉連線時長大於removeAbandonedTimeoutMillis的連線 removeAbandonedTimeoutMillis 300 * 1000 一個連線從被連線到被關閉之間的最大生命週期 logAbandoned false 強制關閉連線時是否記錄日誌
<!--配置成三十分鐘-->
applicationContext-druid.xml
<property name="removeAbandonedTimeout" value="1800" />