连接池通常由应用服务器管理吗?但我们可以在META-INF文件夹中添加context.xml,并在那里配置数据源。
这是一个好方法吗?即使在这种情况下,即使我们在应用程序中有配置,服务器也会选择这些配置并管理池权限?
我注意到当我不关闭连接时它会返回不同的连接对象。如果我关闭连接它确实返回相同的连接对象GenericObjectPool.numActive在这种情况下显示1。但是,当我不关闭连接时,它还会将连接对象返回到池中吗?因为我看到GenericObjectPool.numActive继续增加每个请求。
我的第二个问题是,虽然我没有关闭连接,但现在仍然将它们返回到连接池?所以,即使在请求完成后,为什么服务器没有选择该连接对象而是创建一个新对象?
答案 0 :(得分:1)
如果您不关闭连接,它将不会返回池。必须始终通过从池中获取连接的方法在最后一个块中关闭连接。
您的服务器或池可能有办法检测到连接尚未关闭,但已不再使用,因此将其返回到池中,但您不能依赖此类机制。