【问题标题】:When using proxool, do I need to explicitly close every getConnection()?使用 proxool 时,是否需要显式关闭每个 getConnection()?
【发布时间】:2009-08-14 02:35:22
【问题描述】:

我正在编写新的数据库连接代码,并认为我会尝试将 proxool 作为连接池实现者。

通常,程序员会确保每个 DriverManager.getConnection(...) 后跟一个 connection.close()。

但是在使用 Proxool 时,是否需要关闭?我很困惑,因为:

一个。 proxool 文档在这里 (http://proxool.sourceforge.net/quickStart.html) 显示 close() 被调用,然而,

b.我在某个地方读到了 proxool 添加关闭所有的关闭挂钩 程序退出时的连接。

我的程序最关心的是性能(每秒最多 200 次数据库写入),所以我不确定 Proxool 的 getConnection()/close() 将如何影响性能。

我的问题是:

  1. 是否需要 close(),或者我可以依靠 Proxool 来关闭我的连接?

  2. 如果我每次都必须自己显式调用 close(),那不会对性能产生不利影响吗?

提前致谢。

【问题讨论】:

    标签: java connection pooling proxool


    【解决方案1】:

    数据库池通常对连接进行子类化/修饰,以便close() 方法如果被应用程序调用,实际上不会关闭连接,而是将其释放回池中。这样做是出于性能原因,因为每次建立新连接的成本都很高,而且为了提高您的用户/连接比率。

    也就是说,您需要调用connection.close(),从而让池知道您不再使用它,并且它可以提供给下一个请求它的线程。

    【讨论】:

      猜你喜欢
      • 2019-06-10
      • 1970-01-01
      • 1970-01-01
      • 2017-09-04
      • 2014-07-16
      • 1970-01-01
      • 2018-07-15
      • 2011-04-10
      • 1970-01-01
      相关资源
      最近更新 更多