我想为高吞吐量应用选择一个连接池

时间:2012-01-30 13:37:52

标签: database-connection connection-pooling c3p0 bonecp

我现在使用C3P0连接池但行为不稳定。我在各种环境和改进数据库选项中进行测试。我今天发现Tomcat 7 jdbc连接池已经发布并获得它。有没有人使用它并获得比C3p0更好的性能? (我也测试boncp连接池)
我的应用是非常高的负载。我的问题是:

  1. 传递一小时连接池后抛出“无法打开连接”异常。
  2. 有时我得到此异常“尝试使用已关闭或已损坏的资源”池并在重新启动我的连接池时(通过其mbean)问题已解决 我的C3P0参数是:

    initialPoolSize = 1
    了MinPoolSize = 1
    maxPoolSize = 50
    maxIdleTime = 20000
    debugUnreturnedConnectionStackTraces = true
    propertyCycle = 60
    acquireRetryDelay = 1000
    maxConnectionAge = 0
    checkoutTimeout = 5000
    acquireIncrement = 1
    numHelperThreads = 5
    acquireRetryAttempts = 1
    unreturnedConnectionTimeout = 90
    breakAfterAcquireFailure = false
    我也用几个值测试这些参数,但没有看到任何可察觉的变化。

1 个答案:

答案 0 :(得分:0)

我还没有尝试过tomcat池,但很快就会对此进行调查。您可以做的是调整您的c3p0池以进行优化。这将根据您的应用程序的实际负载而有所不同,但与其他池化技术相比,我发现c3p0具有灵活性。 如果您可以在这里详细说明问题,并提及您正在使用的池参数,那将是很好的。