mysql-客户端超时

fd3cxomn  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(304)

我正在使用c3p0(0.9.5.2)连接池连接到mysql数据库。我已将默认语句超时设置为1秒。我看到在高负载期间,一些连接请求超时( checkoutTimeout 是1秒),但未达到最大池容量。在分析线程堆栈时,我看到“mysql取消计时器”线程处于可运行状态。可能存在批量超时,导致数据库没有响应,并且在1秒内没有创建新连接。
是否有办法将取消计时器的影响降至最低,并确保在未达到最大池容量时不会发生客户端超时?

kpbpu008

kpbpu0081#

即使游泳池不是 maxPoolSize , checkout 尝试将超时,如果 checkoutTimeout 已设置,并且无法在超时内获取新连接。 checkoutTimeout 只是-一个超时-并将强制执行一个时间限制,无论原因。
如果要防止超时,必须确保在指定的时间内连接可用。如果数据库对连接请求没有响应,最直接的解决方案显然是解决这个问题。其他方法可能包括设置更大的 acquireIncrement (这样连接更有可能被预取)或更大的 minPoolSize (相同)。
或者,您可以选择更长的超时时间(或者完全不设置超时)。

相关问题