Hibernate + Spring + Druid 数据库mysql
由于配置如下
从配置可以看到,我的连接数max = 600, 但是程序跑到不到一会就报连接数不够, 获取不了连接数就一直卡在那里,重启tomcat服务器,过一会又是这样
从数据库 SHOW PROCESSLIST 发现好多连接数在 sleep , sleep 说明连接数没有被释放一直在被占用
分析思路
1 分析代码中可能有没有 未关闭的数据库连接
2 查看配置文件时候正确
代码中
如果代码中出现 Session session = getSession(); 最后最好加上 session.close(); 这样就手动释放了这个连接,也可以换一种获取连接的方式
这样 getHibernateTemplate() 获取数据连接
配置文件中
关联hibernate 配置中
属性 key="hibernate.connection.release_mode" 这一列要填 after_transaction, 如果是auto也会很有可能初恋数据库连接一直活跃被占用
好了,这几个地方注意下,基本上是可以解决问题的