【问题标题】:Why is my DBCP connection pool running out of connections?为什么我的 DBCP 连接池连接不足?
【发布时间】:2012-05-08 12:04:22
【问题描述】:

我使用连接池 (DBCP) 和 Sql Server 2005 开发了 Java 应用程序。在我的配置文件中,我有 MaxActive="500",但在某些情况下它会超过 500 个连接。为什么?那个时候数据库很慢。

<Resource
    name="jdbc/tm4u"
    auth="Container"
    type="javax.sql.DataSource"
    driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
    url="jdbc:sqlserver://XXXX;databaseName=XX;User=abc;Password=son;selectMethod=cursor"
    username="abc"
    password="son"
    autoReconnect="true"
    maxActive="500"
    removeAbandoned="true"
    logAbandoned="true"
    removeAbandonedTimeout="60"
    maxIdle="10"
    /> 

【问题讨论】:

  • 这完全取决于您使用的连接池实现。你能说说你用的是哪一个吗?
  • 查看此链接。 issues.apache.org/jira/browse/DBCP-379看来是DBCP的bug
  • 请编辑您的问题并向我们展示一些实际使用连接的代码。它们分配在哪里,在哪里关闭?

标签: java sql-server-2005 connection-pooling


【解决方案1】:

在您的代码中,您是否关闭了已打开的连接?通过这样做,连接将返回到池中并重新使用。在这种情况下不应该有性能下降。但是,如果我们需要超过 500 个活动连接,其中一些将不得不等待。

另请参阅与池相关的 SO 的其他问题。

【讨论】:

    猜你喜欢
    • 2019-03-03
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    相关资源
    最近更新 更多