动态调整大小连接池大小c3p0

时间:2012-09-14 09:01:15

标签: hibernate c3p0

我在我的系统中使用c3P0。我有与根据请求数量更改池大小相关的设计问题。

我们有基于多租户的应用程序,其中每个租户的DB是分开的。我们使用hibernate进行持久化,使用c3p0进行连接池。每个租户的连接池都不同。

现在,每个租户的连接池大小都是静态的,并在配置中定义。但是当1-2个租户的负载增加时,我们需要为这些租户提供更多的数据库连接,而不增加其他租户的池大小。

我们想要的是为这些租户动态增加连接池大小,并从负载较低的其他租户的连接池中关闭未使用的连接。

我在考虑使用maxIdleTime进行连接。但是因为我对MySql的连接总数有限制,所以我需要一种更主动的方法,以便增加高负载连接池,减少低负载池,关闭未使用的连接。

1 个答案:

答案 0 :(得分:0)

在你的c3p0配置中使用高maxPoolSize工作吗? c3p0根据需求自动“扩展”池大小。 (如果你想让它们快速向下弯曲,请查看maxIdleTimeExcessConnections。如果你想避免超时设置maxIdleTime或maxConnectionAge)

参见:c3p0's docs,尤其如此 configuration properties