如何管理连接池



连接池通常由应用程序服务器管理,对吗?但是我们现在可以在META-INF文件夹中添加context.xml并在那里配置数据源。

  1. 这是个好方法吗?即使在这种情况下,即使我们的应用程序中有配置,服务器也会选择这些配置并管理池,对吗?

    我注意到,当我不关闭连接时,它会返回不同的连接对象。如果我关闭连接,它会返回相同的连接对象GenericObjectPool.numActive在本例中显示1。但是当我不关闭连接时,它也会将连接对象返回到池中,对吗?因为我看到GenericObjectPool.numActive为每个请求保持增加。

  2. 我的第二个问题是,尽管我没有关闭连接,但这些连接现在会返回到连接池吗?所以,即使在请求完成之后,服务器为什么不选择那个连接对象,而是创建一个新的连接对象呢?

如果不关闭连接,它将不会返回到池中。在finally块中,连接必须始终通过从池中获取连接的方法关闭。

您的服务器或池可能有办法检测到连接尚未关闭,但已不再使用,并将其返回到池中,但您不能依赖这样的机制。

最新更新