C3P0 连接池时报 TimeoutException 的解决方法

项目中遇到 C3P0 连接池报 TimeoutException,排查过程包括确认 MySQL 服务正常,尝试调整 C3P0 配置未果。最终发现问题是由于 JDK 更新导致 SSL 连接错误,通过在 `java.security` 文件中修改 `jdk.tls.disabledAlgorithms` 参数解决,从而避免使用 SSLv3, TLSv1, TLSv1.1。" 107637342,8346008,线上问题排查与解决方法论,"['问题排查', '线上运维', '系统监控', '故障处理', 'Java服务', '测试工程师']
摘要由CSDN通过智能技术生成

        最近在项目中遇到 C3P0 连接池时 IDEA 报 TimeoutException,记一次排查过程,希望对大家有帮助,过程如下:

        首先,看 mysql 服务是否正常。先重启 mysql 服务,发现项目还是报错。而 navicat 连接数据库正常,shell 连接数据库也正常,证明不是 mysql 的问题。

        然后,在网上查各种博客,网上各种博客解决该问题的方法有两种:(1)调小 c3p0 链接池最大连接数大小 (2)调大 c3p0 链接池的超时时间。经排查,项目中的连接数大小和超时时间均在各种博客的建议范围内,无果。

        最后,无奈之下,干脆写了个原生的 jdbc 代码试试,结果 jdbc 代码报 ssl 错误,终于定位到问题所在:由于我本地更新了 jdk ,1.8 高版本的 jdk 在连接数据库时会使用 ssl 连接。有两种解决办法:(1)在连接串中添加参数 useSSL=false (2)修改 java.security 配置。最终选择第二种解决办法。具体操作如下:

        (1)找到 java.security 文件。mac电脑在:/Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home/jre/lib/security/java.security

        (2)修改jdk.tls.disabledAlgorithms配置项,删除 SSLv3, TLSv1, TLSv1.1

删除前:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值