MySql-客户端超时
我正在使用C3P0(0.9.5.2)连接池连接到MySQL数据库。我已将默认语句超时设置为1秒。我看到在高负载期间,一些连接请求超时(MySql-客户端超时,mysql,database,c3p0,connection-timeout,Mysql,Database,C3p0,Connection Timeout,我正在使用C3P0(0.9.5.2)连接池连接到MySQL数据库。我已将默认语句超时设置为1秒。我看到在高负载期间,一些连接请求超时(checkoutTimeout为1秒),尽管没有达到最大池容量。在分析线程堆栈时,我看到“MySQL取消计时器”线程处于可运行状态。可能存在批量超时,这会导致数据库无响应,并且不会在1秒内创建新连接 是否有办法将取消计时器的影响降至最低,并确保在未达到最大池容量时不会发生客户端超时?即使池不是maxPoolSize,如果设置了checkoutTimeout,并且在
checkoutTimeout
为1秒),尽管没有达到最大池容量。在分析线程堆栈时,我看到“MySQL取消计时器”线程处于可运行状态。可能存在批量超时,这会导致数据库无响应,并且不会在1秒内创建新连接
是否有办法将取消计时器的影响降至最低,并确保在未达到最大池容量时不会发生客户端超时?即使池不是
maxPoolSize
,如果设置了checkoutTimeout
,并且在超时时间内无法获得新连接,签出尝试也将超时checkoutTimeout
只是一个超时,它会强制执行一个时间限制,不管原因如何
如果你想防止超时,你必须确保在规定的时间内连接可用。如果数据库对连接请求没有响应,最简单的解决方案显然是解决这个问题。其他方法可能包括设置更大的acquiredincrement
(以便更有可能预取连接)或更大的minPoolSize
(相同)
或者,您可以选择更长的超时时间(或者完全不设置超时时间)