添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
长情的充电器  ·  FastAPI mysql ...·  1 周前    · 
小眼睛的帽子  ·  在Ubuntu ...·  1 年前    · 
魁梧的烈马  ·  SSRNet ...·  1 年前    · 

最近段时间。今年开始把。我维护的网站一直报错数据库连接不上,找不到链接,连接池耗尽问题。
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted
2017-07-26 15:42:20,516 ERROR [STDERR] at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:103)
2017-07-26 15:42:20,516 ERROR [STDERR] at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
2017-07-26 15:42:20,516 ERROR [STDERR] at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
2017-07-26 15:42:20,516 ERROR [STDERR] at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
2017-07-26 15:42:20,516 ERROR [STDERR] at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
2017-07-26 15:42:20,516 ERROR [STDERR] at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
2017-07-26 15:42:20,531 ERROR [STDERR] at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
2017-07-26 15:42:20,531 ERROR [STDERR] at org.hibernate.loader.Loader.doQuery(Loader.java:673)
2017-07-26 15:42:20,531 ERROR [STDERR] at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
2017-07-26 15:42:20,531 ERROR [STDERR] at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
2017-07-26 15:42:20,531 ERROR [STDERR] at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
2017-07-26 15:42:20,531 ERROR [STDERR] at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
2017-07-26 15:42:20,531 ERROR [STDERR] at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3044)
2017-07-26 15:42:20,531 ERROR [STDERR] at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:395)
2017-07-26 15:42:20,531 ERROR [STDERR] at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
2017-07-26 15:42:20,531 ERROR [STDERR] at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
2017-07-26 15:42:20,531 ERROR [STDERR] at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:195)
2017-07-26 15:42:20,531 ERROR [STDERR] at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
2017-07-26 15:42:20,547 ERROR [STDERR] at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
2017-07-26 15:42:20,547 ERROR [STDERR] at org.hibernate.impl.SessionImpl.get(SessionImpl.java:815)
2017-07-26 15:42:20,547 ERROR [STDERR] at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
2017-07-26 15:42:20,547 ERROR [STDERR] at org.springframework.orm.hibernate3.HibernateTemplate$1.doInHibernate(HibernateTemplate.java:477)
2017-07-26 15:42:20,547 ERROR [STDERR] at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:373)
2017-07-26 15:42:20,547 ERROR [STDERR] ... 68 more
2017-07-26 15:42:20,547 ERROR [STDERR] Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
2017-07-26 15:42:20,547 ERROR [STDERR] at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:756)
大概日志如上所示,很是郁闷,叫来了测试。想让测试找出根源。结果测试只能重现错误。。我瞬间感觉失去信心了。
后面好好看看日志,看看报错方法,发现dao里获取connection竟然是this.getSession。后面百度了下这个方法。是hibernate自带的,但不会释放。对比了几个获取方式,我小心翼翼的替换了几个类。害怕不是根源。。
后面让测试再次测试了后。发现没有报错连接池耗尽之类的问题。。
暂时这么处理了。后续在继续观察中。大家有更好的见解可以提出。

转载于:https://www.cnblogs.com/wuyachal/p/9037323.html

最近段时间。今年开始把。我维护的网站一直报错数据库连接不上,找不到链接,连接池耗尽问题。Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted2017-07-26 15:42:20,516 ERROR [STDERR] at org.apache.commons... 下面是源代码: **public class J db cUtils { private static BasicDataSource dataSource = new BasicDataSource(); private static Connection con= null; static { // 通过对象给 子提供参数 dataSource...
已解决org.apache.tomcat. db cp. db cp.SQLNestedException: Cannot create PoolableConnectionFactory
propertyCycle -> 0, testConnectionOnCheckin -> true, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ] 昨天,项目从test启动测试,报上...
测试同事突然说项目连不上了,看了下 连接 文件,没有什么问题,网上查询后才知道,是大多数记事本工具(Emedit等)默认是以utf-8 BOM方式,会在文件中加入BOM头,导致以下错误:  Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。 解决方法,用NotePad打开文件,以UTF-...
@PostMapping("txt") @Transactional(rollbackFor = Exception.class) @ApiOperation(value = "解析接口") @ApiImplicitParams({ @ApiI
近几天在做一个项目时,遇到一个问题:前端如果在短时间内(2秒内)有多个相同的请求发到后台,后台再去通过restTemplate发送请求给其他服务的时候,会报错“connetion pool shutdown”。 通过查阅资料,大概是因为由于rest 连接 过于频繁,导致上一个获取不到 连接 。具体原因需要进一步分析。 stackoverflow: 1:https://stackoverflow.co...
在Python中 连接 Redis时,如果频繁地创建和断开Redis 连接 ,会影响性能。此时可以使用 连接 来提高性能。Redis 连接 可以在应用程序启动时预先创建一定数量的 连接 ,然后在需要时从 中获取 连接 ,使用完毕后将 连接 归还到 中,而不是每次都重新创建 连接 。 要使用Redis 连接 ,可以使用`redis.ConnectionPool`类来创建 连接 。以下是一个示例: ```python import redis # 创建 连接 pool = redis.ConnectionPool(host='localhost', port=6379, db =0) # 获取 连接 r = redis.Redis(connection_pool=pool) # 设置键值对 r.set('key', 'value') # 获取键值对 value = r.get('key') print(value) # 归还 连接 连接 pool.release(r) 在上面的例子中,我们首先创建了一个 连接 ,然后使用 连接 创建了一个Redis 连接 。接下来可以像之前一样使用Redis 连接 进行操作,最后需要将 连接 归还到 连接 中,以便于下次使用。