【问题标题】:c3p0 connection pool queriesc3p0 连接池查询
【发布时间】:2012-12-18 22:28:03
【问题描述】:

我正在使用 c3p0 连接池,我有 minPoolSize=1 maxPoolSize=5 和 InitialPoolSize=5。

当服务器启动时,我可以看到它有 5 个连接。但随着第一个请求的到来,没有。增加到 10。从那时起,它保持 10,因为这 10 个连接正在处理该负载。现在我的问题是,即使 maxPoolSize 是 5 ,为什么还要创建另一个 5 conn。在游泳池。是因为 initialPoolSize 吗?

谢谢

【问题讨论】:

    标签: c3p0


    【解决方案1】:

    听起来您有两个活动池。您是在调用 getConnection(user, password) 而不是默认的 getConnection()? c3p0 为每个身份验证创建一个不同的池。此外,您可以通过 JMX 跟踪活动身份验证的数量。

    initialPoolSize 应该与它没有太大关系。此外,在尝试了解 c3p0 问题时,确保活动配置符合您的预期总是一个好主意。同样,您可以通过 JMX 查看大多数配置参数,或者更简单地说,检查您的日志文件。 c3p0 数据源在初始化时将其配置转储到 INFO。

    【讨论】:

    • 我验证了,它只是 jmx 中的一个池,当服务器启动时总共有 5 个 conn(maxPoolSize),但是一旦 req 到来,它就翻倍(10)并永远留在那里(2 小时测试)
    • 一个池还是一个数据源?每个 DataSource 可以有多个池,每个 DataSource 是一个 mbean。您在 JMX 中查看什么属性? maxPoolSize 的运行时值是多少?请比较 numConnectionsAllUsers 和 numConnectionsDefaultUser。它们是一样的吗?
    • 你是对的,有多个池,因为它是为 diff 用户配置的。很抱歉造成混乱,应该阅读文档
    猜你喜欢
    • 1970-01-01
    • 2013-08-20
    • 2014-12-22
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-09
    • 1970-01-01
    相关资源
    最近更新 更多