【问题标题】:How DBConnectionPool will behave during Connection reset连接重置期间 DBConnectionPool 的行为方式
【发布时间】:2013-03-19 08:32:04
【问题描述】:

在我们的项目中,我们正在维护自己的数据库连接池。
为了解决'java.sql.SQLRecoverableException: Io exception 的问题,大多数人建议使用标准连接池,如 apache dbcp。

  • 我想知道这些标准池机制在连接重置期间将执行什么逻辑?
  • DBConnectionPool 如何知道数据库连接超时?因为我们知道 conn.isClosed() 在这里无济于事。
  • 是否每个数据库连接都会有一个与数据库服务器的 tcp 客户端套接字?
  • 最后是否可取;每当我将连接返回到池时;池应该关闭连接;如果连接存在超过约 10 分钟,则返回? [~10 分钟服务器端连接超时变量]

请回答我所有的问题。

【问题讨论】:

    标签: java jdbc database-connection connection-pooling


    【解决方案1】:

    我正在回答这个问题,假设您通过使用 org.apache.commons.pool.impl.GenericObjectPoolorg.apache.commons.dbcp.DataSourceConnectionFactoryorg.apache.commons.dbcp.PoolableConnectionFactoryorg.apache.commons.dbcp.PoolingDataSource 类来使用 Apache DBCP 进行连接池。

    • 我想知道那些标准池机制的逻辑是什么 将在连接重置期间执行? 如果将GenericObjectPool.testOnBorrowGenericObjectPool.testOnReturn 设置为true,则将使用PoolableConnectionFactory 中设置的validationQuery 验证连接是否处于活动状态。如果验证失败,则删除 Connection 对象并创建新对象并将其添加到池中
    • DBConnectionPool 如何知道数据库连接超时?自从 我们知道 conn.isClosed() 在这里无济于事。 机制同上
    • 是否每个 db 连接都会有一个与 DB 的 tcp 客户端套接字 服务器? 是的
    • 最后是否可取;每当我将连接返回到 水池;池应该关闭连接;如果连接存在 创建时间超过~10分钟? [~10 分钟服务器端连接 timeout variable] 如果您认为它不会造成不必要的网络流量,并且您有特殊理由这样做。你能行的。如果要根据空闲时间删除,请在 GenericObjectPool 中设置 minEvictableIdleTimeMillistimeBetweenEvictionRunsMillis

    【讨论】:

    • 您的意思是每当请求新连接时;该池将在 DB 上执行测试查询 (validationQuery) 以验证 TCP 状态。如果查询成功,则池将返回该连接 ??
    • 如果您使用数据库池,您将无法控制新连接。由池决定何时创建新连接。但正如第一个问题的答案所解释的那样,testOnBorrow 和 testOnReturn 可用于在将现有连接提供给用户之前验证它们的状态。
    • 检查这些行 commons.apache.org/proper/commons-dbcp/apidocs/src-html/org/…commons.apache.org/proper/commons-dbcp/apidocs/src-html/org/… validateObject 被调用,然后 validateConnection 使用 JDBC 语句执行validationQuery。如果 SQL 执行失败(由于连接丢失、超时、网络拥塞)或 validationQuery 未能返回结果,则 validateObject 将返回 false,表示连接无效。
    • +1。谢谢!那么我的第一条评论是有效的 rit??,在我的自定义池中;在从我的池返回到应用程序的连接之前,我还应该保持验证查询执行?
    猜你喜欢
    • 1970-01-01
    • 2017-02-04
    • 2015-01-30
    • 2015-06-25
    • 2016-12-09
    • 2023-02-02
    • 2015-06-03
    • 2012-12-23
    • 2021-09-17
    相关资源
    最近更新 更多