关于spring boot整合druid连接池在程序关闭后连接不释放问题解决
2018-01-11 20:05
465 查看
最近公司使用spring boot-druid-dubbo的模式开发业务,但是在线下进行实际测试时,发现mysql数据库连接数在一段时间后会被占满,顿时一脸懵逼.
经过测试,连接不释放问题是由于在自己本机对程序进行强制关闭导致的(之前做业务时,直接关闭tomcat,会自动释放与数据库的连接),强制关闭,数据库侧是不知道你程序已经关闭的,所以连接会一直保持,直到到达数据库默认超时时间后连接自动释放。
Spring boot本身是存在shutdown的,经过测试其shutdown方法,关闭程序后数据库连接可以释放。
shutdown配置方法如下:
1) 在pom.xml中增加如下配置:
2) Application.properties中增加:
3) 关闭命令:
必须为post方式去调用!!!
使用该方式进行spring boot的关闭,未出现连接未释放问题。
经过测试,连接不释放问题是由于在自己本机对程序进行强制关闭导致的(之前做业务时,直接关闭tomcat,会自动释放与数据库的连接),强制关闭,数据库侧是不知道你程序已经关闭的,所以连接会一直保持,直到到达数据库默认超时时间后连接自动释放。
Spring boot本身是存在shutdown的,经过测试其shutdown方法,关闭程序后数据库连接可以释放。
shutdown配置方法如下:
1) 在pom.xml中增加如下配置:
<!--spring boot 应用关闭的前提配置 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
2) Application.properties中增加:
##spring boot应用关闭配置项,关闭命令(必须为post请求):curl -X POST host:port/shutdown #启用shutdown endpoints.shutdown.enabled=true #禁用密码验证 endpoints.shutdown.sensitive=false
3) 关闭命令:
curl -X POST host:port/shutdown
必须为post方式去调用!!!
使用该方式进行spring boot的关闭,未出现连接未释放问题。
相关文章推荐
- sql server 2000下的关于“provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接”问题的解决
- Maven项目中,关于Spring Boot 整合MyBatis时,Service层无法找到mapper接口的问题解决
- spring+hibernate+c3p0整合链接池配置-连接无法释放问题(已经解决)
- hibernate默认连接池存在过期连接无法释放的问题及解决方法。
- spring+hibernate+c3p0整合链接池配置-连接无法释放问题(已经解决)
- MFC关于解决点击关闭,对话框仍有后台程序运行问题
- 关于数据库查询语句SqlDataReader的连接释放问题的解决办法
- 关于spring boot 中App类位置不同导致出错的问题的解决方法
- 关于spring boot 中App类位置不同导致出错的问题的解决方法
- Spring 和Struts2 整合 特别需要关注Session 关闭的问题:解决方法是使用 OpenSessionInViewFilter
- 连接无法释放导致的程序问题解决
- 关于spring boot无法自动注入bean问题解决方案
- Spring+hibernate中不能释放tomcat连接池中连接的解决办法
- [小技巧]关于spring boot 整合mybatis-plus: value为null时不返回的问题。
- 关于IDEA工具在springboot整合mybatis中出现的Invalid bound statement (not found)问题
- SpringBoot学习:整合MyBatis,使用Druid连接池
- 关于Web程序打开Word、Excel后,不能关闭的问题的一个解决办法
- 关注程序性能(1)jconsole 连接远程linux上的tomcat,以及解决配置后tomcat关闭不了的问题
- ORA-12537: TNS: 连接已关闭 错误的解决。(关于sqlnet.ora中实现IP访问控制问题)
- SpringBoot 整合Mail发送功能问题与解决