当前位置: 首页 > 知识库问答 >
问题:

动态调整连接池大小c3p0

范甫
2023-03-14

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

我们有基于多租户的应用程序,其中每个租户的数据库都是独立的。我们使用hibernate实现持久性,使用c3p0实现连接池。每个租户的连接池是不同的。

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

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

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

共有1个答案

郝峰
2023-03-14

在您的c3p0配置中使用高maxPoolSize可以吗?c3p0会根据需求自动“调整”池大小。(如果您希望它们快速调整,请查看maxIdleTimeExcessConnections。如果您想避免超时,请设置maxIdleTime或maxConnectionage)

请参阅:c3p0的文档,尤其是配置属性。

 类似资料:
  • 我的应用程序中有如下工作流:可以有X个用户请求(通常同时有5-10个),他们希望在系统中搜索某些东西(每个请求在单独的线程中处理)。 每个搜索都可以并行处理(我目前正在实现)。线程/CPU使用实际上不是这里的问题,因为这些任务不需要占用CPU。数据库是瓶颈。 目前,我只为搜索机制设置了一个单独的DB连接池-最大池大小设置为10。我知道这不多,但我不能把它设置得更高。现在我试图弄清楚如何为每个搜索(

  • 嘿,我正在使用Glassfish开源v4,我遇到了一个奇怪的问题。 我在管理控制台中定义了到Oracle 11g的JDBC连接池,并设置了: 初始和最小池大小:500 最大游泳池大小:1000 池大小调整数量::750 我已经为这个连接池创建了一个特定的用户。然而,有时当我检查数据库中打开的连接时,我发现有1000多个连接(我看到的最大连接数是1440个) 当发生这种情况时,任何查询尝试都会失败,

  • 在tkinter中调整窗口大小时,有没有办法动态调整小部件的大小? 这是代码: 当我调整窗口大小时,窗口小部件的宽度和高度保持不变。 我想要的是根据窗口的大小动态调整窗口小部件的大小。 有没有办法在tkinter中实现这一点? 如果有人能帮我,那就太好了。

  • 问题内容: 为什么在hibernate配置文件中为连接池设置10?size = 1是内置的size。为什么需要增加大小? 问题答案: 来自Hibernate API 文档。 但是,Hibernate自己的连接池算法非常初级。它旨在帮助您入门,不适合在生产系统中使用,甚至不用于性能测试。您应该使用第三方池来获得最佳性能和稳定性。只需将hibernate.connection.pool_size属性替

  • 我目前正在使用okhttp 3.10.0,我最近才发现,为每个新请求创建一个新的客户端对每个拥有自己连接池的客户端都是有害的。 我在servlet中使用okhttp。我现在要做的就是在每个servlet中声明一个静态客户机,并在init()方法中初始化它 这里是最大空闲连接的配置,我将其设置为20,空闲超时设置为5分钟。 1)实际的池大小是多少,即池将具有的最大连接(通过代码查看,我发现它可能是I

  • 问题内容: 如本问题所述(将图像包装到Jframe中),我需要一个jframe来匹配提供的确切图像(图像本身最初是已转换为图像的PDF) 所提供的解决方案确实为我的图像尺寸构建了一个jframe,但实际上看不到所有图像。我需要能够调整jframe的大小,并使图像动态调整为新的jframe大小。失败的话,我想如果我可以滚动jframe或什至放大或缩小,至少可以到达当前无法看到的图像部分。 我需要这个

  • 正如在这个问题中讨论的(将图像包装到Jframe),我需要一个Jframe来匹配精确提供的图像(图像本身最初是一个PDF,已经转换为图像)