首页 > 数据库 >数据库事务耗时过长导致Could not retrieve transaction read-only status from server异常

数据库事务耗时过长导致Could not retrieve transaction read-only status from server异常

时间:2024-10-23 22:59:10浏览次数:1  
标签:status 事务 transaction retrieve read server only https mysql

背景 

[11-06 02:02:09:005] [ERROR] - DruidDataSource - discard connection
java.sql.SQLException: Could not retrieve transaction read-only status from server
 
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
 
The last packet successfully received from the server was 1,114,012 milliseconds ago.  The last packet sent successfully to the server was 1 milliseconds ago.
 
Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.

最开始只看到Could not retrieve transation read-only status server没看到下面的Communications link failure,以为是在代码中手动设置事务状态为只读或者事务回滚,后来查代码也没发现。
当看到Communications link failure意识到连接异常,但与当前方法连接同一个库的其他方法可以执行成功,所以数据库服务也是正常的。

最终发现原因:事务内部处理逻辑过多,导致大事务执行时间过长,超过了mysql连接的超时时间啊in,导致服务端丢弃连接后,过了很久事务才执行完毕。

问题原因

wait_timeout 设置过小,mysql自动丢弃连接,但是程序端没有超时,造成依然在这个被丢弃的连接上执行语句

解决方案

设置mysql wait_timeout 参数
show global variables like '%timeout%';
SET GLOBAL wait_timeout=86400;
此处的单位应该秒。

  

相关链接

https://segmentfault.com/a/1190000020125846

https://blog.csdn.net/u013097383/article/details/88581938

https://blog.csdn.net/qq_38214534/article/details/106021187

https://study.sf.163.com/documents/read/service_support/dsc-p-a-0149

 

本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持。

首发链接:https://www.cnblogs.com/lingyejun/p/18498531

标签:status,事务,transaction,retrieve,read,server,only,https,mysql
From: https://www.cnblogs.com/lingyejun/p/18498531

相关文章

  • SpringBoot 项目的方法名是否添加@Transactional注解,以及SQL语句(SQLServer数据库)是
    项目改用SpringDataJDBC并手动配置DataSource之后,@Transactional注解一直不起作用。这两天研究了一下,注解不起作用,主要是没有配置TransactionManager的事,配置完TransactionManager之后,@Transactional注解就起作用了。但是配置完又发现,用jdbcTemplate.queryForList()方法执......
  • ERROR [org.hibernate.transaction.JDBCTransaction] - Could not toggle autocommit
    错误描述: DEBUG[org.hibernate.SQL]-SELECTorp.ATTR6FROMDISTRIBUT_VIEWd WHEREd.state='1'ANDd.oper_logLIKE'%下单%' GROUPBYorp.ATTR6 ERROR[org.hibernate.transaction.JDBCTransaction]-Couldnottoggleautocommitjava.sql.SQLE......
  • 工作 6 年,@Transactional 注解用的一塌糊涂
    接手新项目一言难尽,别的不说单单就一个 @Transactional 注解用的一塌糊涂,五花八门的用法,很大部分还失效无法回滚。有意识的在涉及事务相关方法上加 @Transactional 注解,是个好习惯。不过,很多同学只是下意识地添加这个注解,一旦功能正常运行,很少有人会深入验证异常情况下事务......
  • Camstar Create Transaction Database
    sqlserverUSE[master]GO--CreatedatabaseCREATEDATABASEINSITEONPRIMARY(NAME='INSITE',FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL13.MSSQLSERVER\MSSQL\DATA\INSITE.mdf',SIZE=100MB,FileGrowth=10%)LOGON(......
  • CentOS报错:Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&
    CentOS报错:Couldnotretrievemirrorlisthttp://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock32errorwas14:curl#6-"Couldnotresolvehost:mirrorlist.centos.org;Unknownerror"关于CentOS报错:Couldnotretrievemirr......
  • 使用yum安装报错:Could not retrieve mirrorlist http://mirrorlist.centos.org/?relea
    安装wget命令yum-yinstallwget报错,无法找到镜像 测试是否是网络问题抓包正常,网络没有问题;尝试更新yum又开始报错尝试分析问题原因出现这个错误是因为使用的CentOS7仓库已经被归档,当前的镜像地址无法找到所需的文件。CentOS7的官方支持已经结束,部分仓库已被移至归档......
  • transaction_timeout:达到事务超时时终止会话
    功能实现背景说明我们已经有两个参数来控制长事务:statement_timeout和idle_in_transaction_session_timeout。但是,如果事务执行的命令足够短且不超过statement_timeout,并且命令之间的暂停时间适合idle_in_transaction_session_timeout,则事务可以无限期持续。在这种情况下,tra......
  • 如何投IEEE论文(Transactions on Cybernetics为例)
    文章目录1.下载对应的论文模板2.进入提交论文信息的界面3.填写论文中必要的信息3.1ArticleType3.2UploadManuscript3.3Title3.4Abstract3.5Authors3.6AuthorDetails3.7MathOrganizations3.8AdditionalInformation3.9FinalReview终审1.下载对应的论......
  • 开启nginx_stub_status prometheus
    开启nginx_stub_statusprometheus要在Nginx中启用nginx_stub_status并将其数据暴露给Prometheus,你需要执行以下步骤:配置Nginx以使用stub_status。设置Prometheus的exporter来抓取nginx_stub_status页面。配置Prometheus服务来抓取exporter的数据。......
  • WPF StatusBar update periodically via System.Timers.Timer
    //xaml<Windowx:Class="WpfApp406.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......