我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql hikari连接池异常处理(com.zaxxer.hikari.pool.ProxyConnection)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql hikari连接池异常处理(com.zaxxer.hikari.pool.ProxyConnection)

异常信息如下:com.mysql.cj.jdbc.exceptions.CommunicationsException: The last packet successfully received from the server was 603,312 milliseconds ago. 

### Error updating database.  Cause: com.mysql.cj.jdbc.exceptions.CommunicationsException: The last packet successfully received from the server was 603,312 milliseconds ago. The last packet sent successfully to the server was 603,312 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.### The error may exist in com/dbappsecurity/base/mapper/SysConfigMapper.java (best guess)### The error may involve defaultParameterMap### The error occurred while setting parameters### SQL: DELETE FROM tb_sys_config     WHERE (code = ?)### Cause: com.mysql.cj.jdbc.exceptions.CommunicationsException: The last packet successfully received from the server was 603,312 milliseconds ago. The last packet sent successfully to the server was 603,312 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.; The last packet successfully received from the server was 603,312 milliseconds ago. The last packet sent successfully to the server was 603,312 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: The last packet successfully received from the server was 603,312 milliseconds ago. The last packet sent successfully to the server was 603,312 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.2023-03-29 11:00:57 | [89-exec-10] ERROR c.d.base.config.security.BaseExceptionHandler : Catch Exception,message=JDBC commit failed; nested exception is java.sql.SQLException: Connection is closedorg.springframework.transaction.TransactionSystemException: JDBC commit failed; nested exception is java.sql.SQLException: Connection is closed

问题提示的原因:

  1. sql的问题
  2. 让我们设置数据路连接超时时间
  3. 设置数据库的超时时间参数

实际定位下来,都不是,因为这sql之前执行过;

解决过程如下(数据库命令可以在Navicat执行,也可以直接在服务器上执行):

show variables like '%max_connection%'; -- 查看数据库设置的链接数,默认最大是1000,

show global status like 'Thread%'; -- 查看当前数据库已经连的数量,并且各连状态

综合1和2,得出实际连接是不超标,理论上能够获取到数据库连接的;

继续定位

show PROCESSLIST; -- 查询数据库中哪些线程正在执行,执行状态是什么,如果存在lock时,执行的内容是什么

-- 此时显示,在调用数据库操作时,存在等待锁的情况。truncate tb_sys_schudual_record 是 lock状态

-- 这导致该事物里面其他的sql操作被阻塞。

为什么是lock状态?

-- 代码流程存在问题,在执行truncate tb_sys_schudual_record 之前,方法里对该表进行了其他操作。由于该方法被事务所管理,并且该方法还未执行完,事务不会被提交,此时在去truncate该表,就会被锁住。

-- 最终导致该错误的出现。

总结:

代码问题:操作同一张表时,应该注意表锁的问题

来源地址:https://blog.csdn.net/m0_55476995/article/details/129839711

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql hikari连接池异常处理(com.zaxxer.hikari.pool.ProxyConnection)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JDBC连接mysql乱码异常问题处理总结

前段时间学习JDBC,要连接mysql获取数据。按照老师的样例数据,要存一些名字之类的信息,用的都是英文名,我当时就不太想用英文,就把我室友的名字存了进去,嘿嘿,结果,出问题了。 连接数据库语句:static final String DB
2023-05-30

MyBatis怎么处理数据库连接异常

MyBatis处理数据库连接异常的方式主要有以下几种:使用异常处理器:在MyBatis中可以通过实现org.apache.ibatis.exceptions.ExceptionHandler接口来处理数据库连接异常。通过实现该接口,可以自定
MyBatis怎么处理数据库连接异常
2024-03-08

Python中如何处理MySQL数据库连接池以提高效率?(在Python中如何管理MySQL连接池以提升性能?)

PythonMySQL连接池管理管理MySQL连接池可提升Python应用程序性能和可扩展性。本文探讨了在Python中使用连接池的技术:优点:减少开销提高可扩展性预防死锁监控连接失败实现:MySQLdbPyMySQLSQLAlchemy配置:最小连接数最大连接数最大空闲时间心跳最佳实践:使用连接上下文管理器限制并发连接数监控连接池指标定期回收连接升级连接池库通过有效管理连接池,Python应用程序可以优化效率和稳定性。
Python中如何处理MySQL数据库连接池以提高效率?(在Python中如何管理MySQL连接池以提升性能?)
2024-04-02

Go语言Websocket开发实践:如何处理异常关闭连接

Go语言Websocket开发实践:如何处理异常关闭连接引言:在Web开发中,使用Websocket协议可以实现双向通信,通常用于实时数据传输、聊天应用等场景。然而,在使用Websocket时,很容易遇到连接意外中断的情况,例如网络波动、客
Go语言Websocket开发实践:如何处理异常关闭连接
2023-12-14

Oracle异常处理—ORA-12514:监听程序当前无法识别连接描述符中请求的服务

oracle11g,安装完成之后直接使用,今天用PLSQL链接突然报错,报错代码为:ORA-12514:监听程序当前无法识别连接描述符中请求的服务。网上查了这种异常的解决办法,特在此记录。出现该问题一般有两种情况。第一种是在你安装完之后未配置监听(在此我暂时忘
Oracle异常处理—ORA-12514:监听程序当前无法识别连接描述符中请求的服务
2018-05-21

如何处理Oracle监听程序当前无法识别连接描述符中请求的服务异常

这篇文章主要介绍了如何处理Oracle监听程序当前无法识别连接描述符中请求的服务异常,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。出现该问题一般有两种情况。第一种是在你安装完
2023-06-22

编程热搜

目录