Java DBConnectionPool在连接重置期间的行为
在我们的项目中,我们维护自己的数据库连接池Java DBConnectionPool在连接重置期间的行为,java,jdbc,database-connection,connection-pooling,Java,Jdbc,Database Connection,Connection Pooling,在我们的项目中,我们维护自己的数据库连接池 为了解决这个问题,大多数人建议使用标准连接池,如apache dbcp 我想知道在连接重置期间,标准池机制将执行什么逻辑 DBConnectionPool如何知道DB连接已超时?因为我们知道conn.isClosed()在这里帮不上忙 是否每个db连接都有一个带有db服务器的tcp客户端套接字 最后是明智的;每当我返回到池的连接时;池应关闭连接;如果连接存在时间超过10分钟,是否返回? [~10分钟服务器端连接超时变量] 请回答我所有的问题 我在回
为了解决这个问题,大多数人建议使用标准连接池,如apache dbcp
- 我想知道在连接重置期间,标准池机制将执行什么逻辑
- DBConnectionPool如何知道DB连接已超时?因为我们知道conn.isClosed()在这里帮不上忙
- 是否每个db连接都有一个带有db服务器的tcp客户端套接字
- 最后是明智的;每当我返回到池的连接时;池应关闭连接;如果连接存在时间超过10分钟,是否返回? [~10分钟服务器端连接超时变量]
请回答我所有的问题 我在回答这个问题时假设您通过使用
org.Apache.commons.pool.impl.genericopobjectpool
,org.Apache.commons.DBCP.DataSourceConnectionFactory
,将Apache DBCP用于连接池,org.apache.commons.dbcp.PoolableConnectionFactory
和org.apache.commons.dbcp.PoolgDataSource
类
- 我想知道那些标准池机制的逻辑是什么
将在连接重置期间执行吗?
如果
和GenericObjectPool.testOnBorrow
设置为true,则将使用GenericObjectPool.testOnReturn
中设置的PoolableConnectionFactory
验证连接是否处于活动状态。如果验证失败,则删除连接对象并创建新对象并将其添加到池中验证查询
- DBConnectionPool如何知道DB连接已超时?自从 我们知道conn.isClosed()在这里帮不上忙与上述机制相同
- 是否每个db连接都将有一个带有db的tcp客户端套接字 服务器是
- 最后是明智的;每当我将连接返回到
水塘池应关闭连接;如果连接存在
从它创建起超过10分钟?[~10分钟服务器端连接
超时变量]如果您认为它不会产生不必要的网络流量,并且您有特殊理由这样做。你能做到。如果要基于空闲时间删除,请在
中设置GenericObjectPool
以及minEvictableIdleTimeMillis
timeBetweenEvictionRunsMillis