1. 程式人生 > >Druid資料庫連線池問題,ERROR c.alibaba.druid.poo l.DruidDataSource

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" />