当前位置: 首页 > 知识库问答 >
问题:

JavaDBCP2连接池在最大连接关闭后重新创建连接

宰父子安
2023-03-14

我正在尝试使用ApacheDBCP2使用连接池。

我的最大总连接是5。我关闭每一个连接后,它被使用。

但在连接池中关闭5次连接后,我仍然获得连接。

关闭5个连接后,何时ping数据库以获取连接?或者,它将从连接池本身获取数据,而不访问数据库。

下面是我的示例代码片段。请纠正我对连池的理解。

BasicDataSource bds = getBasicDataSource();

System.out.println (bds.getMaxTotal()); // Prints - 5

for (int i=0; i<10; i++) {
    conn = bds.getConnection();
    System.out.println("Conn "+conn); // conn object printing different values for all 10 connections
    conn.close();
}

共有1个答案

宋健柏
2023-03-14

客户端从池中获得的连接实际上不是java。sql。连接,它是java的包装器(代理)。sql。自定义某些方法行为的连接。close()方法就是其中之一,它不关闭连接实例,而是将其返回到池中。

尝试使用C3PO,从我的观点来看,它比DBCP好。

 类似资料:
  • 我有div,可以拖放到绘图区域。可以使用鼠标从源endpoint拖放到目标endpoint手动连接这些div。在这样创建的连接上,连接被分离,但endpoint保留,删除的连接可以通过上述相同的手动过程重新创建。现在,我还将以json格式的连接节点流程图形式的绘图保存到磁盘文件中。在加载文件时,流程图会完美地显示所有连接和节点。现在我在点击一个节点时删除一个连接,它就可以工作了。但是现在我不能再次

  • 我有一个带有数据库连接池的grails/groovy web应用程序。设置如下所示: 我使用java melody进行诊断和监控,并注意到一些奇怪的行为。例如,当执行查询数据库的作业时,连接可以超越maxActive属性。为什么这是可能的? 我需要显式关闭Grails连接吗?该作业调用一个服务方法,该方法通过withCriteria Grails调用简单地执行DB查询,如: 似乎每次运行这个程序,

  • 我使用weblogic应用服务器和oracle数据库。我使用jdbc与oracle数据库通信。我从weblogic数据源获得连接,并向表中插入一条记录。问题是,当我想关闭连接(插入数据库后)时,我会遇到一个异常(连接已经关闭)。这是我的代码: 但是联系。close语句引发异常: 我试图避免连接。close语句(因为我教过连接是自动关闭的!!但过了一段时间,所有的连接都打开了,因此引发了一个异常)

  • 当我使用CloseableHttpClient和do Execute方法时,它在第一次正常工作,但之后从未成功。它将引发表示“连接池关闭”的异常 有人说是因为我还没有关闭客户端有人说是httpClient 4.3中的bug 我的项目不存在上述问题,但仍然无法正常工作

  • 我正在Java中运行Apache HTTP POST请求,每当我超过1300个请求时,就会出现以下错误,我需要发出更多的请求,大约40k,我可以做些什么来纠正相同的错误?

  • 我正在使用HttpClient v4.5.5 我有一个如下: 然后我使用超文本传输协议客户端如下: 通过定期调用(每隔几分钟) 偶尔我会出错 ,据我所知,这种情况要么发生在旧的HttpClient版本上,要么发生在您关闭HttpClient时。我没有这样做。所以我不明白为什么会出现这个错误。它会恢复,但有这样的异常是个问题。