Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

求助大佬: CommunicationsException: Communications link failure :The last packet successfully received from the server was 932,134 milliseconds ago. The last packet sent successfully to the server was 931,363 milliseconds ago. #4351

Closed
mfl0918 opened this issue Jul 6, 2021 · 13 comments
Labels

Comments

@mfl0918
Copy link

mfl0918 commented Jul 6, 2021

lALPBFDk_GA63AnNA5vNB3w_1916_923

数据库没有做读写分离
druid版本:1.0.28 mysql-connector版本 5.1.38

配置:
filters:stat
maxActive:20
initialSize:1
maxWait:6000
minIdle:1
timeBetweenEvictionRunsMillis:60000
minEvictableIdleTimeMillis:300000
validationQuery:select 'x'
testWhileIdle:true
testOnBorrow:false
testOnReturn:false
poolPreparedStatements:true
maxOpenPreparedStatements:20

@mfl0918
Copy link
Author

mfl0918 commented Jul 6, 2021

此问题目前偶尔出现,但一出现,会一直报此错误。线上环境maxActive会配置的稍微大一点

@arbor-95
Copy link

arbor-95 commented Jul 6, 2021

看下数据库配置的连接超时时间

@mfl0918
Copy link
Author

mfl0918 commented Jul 6, 2021

看下数据库配置的连接超时时间

都是默认配置
connect_timeout 10
interactive_timeout 28800
net_read_timeout 30
net_write_timeout 60
wait_timeout 28800

@code4wt
Copy link

code4wt commented Jul 27, 2021

在数据库 url 后面配置一个 socketTimeout 参数,比如 jdbc:mysql://xxxxx:3306/dbname?socketTimeout=5000。注意这个参数会影响慢查,如果慢查时间超过3秒,也会被中断。另外我看你上面还有一个连接超时的异常,connectTimeout 参数也配置一下,先配置成 3000 试试。
这两个配置只能降低问题持续时间,并不能解决问题。最好抓包分析一下应用于 MySQL 服务器的交互过程。

@mfl0918
Copy link
Author

mfl0918 commented Jul 27, 2021

在数据库 url 后面配置一个 socketTimeout 参数,比如 jdbc:mysql://xxxxx:3306/dbname?socketTimeout=5000。注意这个参数会影响慢查,如果慢查时间超过3秒,也会被中断。另外我看你上面还有一个连接超时的异常,connectTimeout 参数也配置一下,先配置成 3000 试试。
这两个配置只能降低问题持续时间,并不能解决问题。最好抓包分析一下应用于 MySQL 服务器的交互过程。

有多个慢查超过3s,数据量的问题,这两个参数目前都没有设置。因为这个错误是偶尔出现,但是一出现服务就会不停的报这个错误

@code4wt
Copy link

code4wt commented Jul 27, 2021

有多个慢查超过3s,数据量的问题,这两个参数目前都没有设置。因为这个错误是偶尔出现,但是一出现服务就会不停的报这个错误

我们出现过类似问题,MySQL 数据库故障,不响应应用请求,导致线程被长时间卡住。通过设置 socketTimeout,可以保证连接不会卡住很长时间,超过设置值就会超时返回。

@mfl0918
Copy link
Author

mfl0918 commented Jul 27, 2021

有多个慢查超过3s,数据量的问题,这两个参数目前都没有设置。因为这个错误是偶尔出现,但是一出现服务就会不停的报这个错误

我们出现过类似问题,MySQL 数据库故障,不响应应用请求,导致线程被长时间卡住。通过设置 socketTimeout,可以保证连接不会卡住很长时间,超过设置值就会超时返回。

谢谢, 我这边先试试,看看这种情况还会出现么

@mfl0918
Copy link
Author

mfl0918 commented Jul 27, 2021

有多个慢查超过3s,数据量的问题,这两个参数目前都没有设置。因为这个错误是偶尔出现,但是一出现服务就会不停的报这个错误

我们出现过类似问题,MySQL 数据库故障,不响应应用请求,导致线程被长时间卡住。通过设置 socketTimeout,可以保证连接不会卡住很长时间,超过设置值就会超时返回。

谢谢, 我这边先试试,看看这种情况还会出现么

大佬能帮忙看看这个问题么 #4387,最近遇到的一个问题,非常感谢

@cgyqu
Copy link

cgyqu commented Aug 9, 2021

有个参数phyTimeoutMillis,可以设置物理链接存在的最大时长,我也是所有办法都试了,没解决,看源码发现了这个参数。好像有用

@mfl0918
Copy link
Author

mfl0918 commented Aug 9, 2021

有个参数phyTimeoutMillis,可以设置物理链接存在的最大时长,我也是所有办法都试了,没解决,看源码发现了这个参数。好像有用

谢谢,我试试,最近加了socketTimeout 和connectTimeout,目前还没出现那个报错,出现了就有的弄了

@cgyqu
Copy link

cgyqu commented Aug 10, 2021

有个参数phyTimeoutMillis,可以设置物理链接存在的最大时长,我也是所有办法都试了,没解决,看源码发现了这个参数。好像有用

谢谢,我试试,最近加了socketTimeout 和connectTimeout,目前还没出现那个报错,出现了就有的弄了

我们都设置的也会出问题,phyTimeoutMillis我刚看了源码,也有问题,设置了可能也不生效。我dump出来内存发现确实存在超过数据库wait_timeout的链接,按道理设置了testOnBorrow应该没问题,结果没生效。

@syjjys
Copy link

syjjys commented Sep 20, 2022

使用

有个参数phyTimeoutMillis,可以设置物理链接存在的最大时长,我也是所有办法都试了,没解决,看源码发现了这个参数。好像有用

谢谢,我试试,最近加了socketTimeout 和connectTimeout,目前还没出现那个报错,出现了就有的弄了

我们都设置的也会出问题,phyTimeoutMillis我刚看了源码,也有问题,设置了可能也不生效。我dump出来内存发现确实存在超过数据库wait_timeout的链接,按道理设置了testOnBorrow应该没问题,结果没生效。

使用keepalive配合minidle试试呢,keepalive是保活的,保证连接到数据库最少有minidle个连接,并且连接超过min-evictable-idle-time-millis会自动请求数据库保证该连接有效

@kimmking
Copy link
Collaborator

kimmking commented Mar 4, 2023

版本太低了,升级到最新版本应该就好了。

@kimmking kimmking closed this as completed Mar 4, 2023
@kimmking kimmking added the Bug label Mar 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants