Spring Boot使用tomcat连接池时出现的:Connection reset by peer: socket write error

Spring Boot使用tomcat连接池时出现的:Connection reset by peer: socket write error

Spring Boot在1.x.x版本默认使用tomcat连接池,该连接池配置不当时,容易出现如下问题

Connection reset by peer: socket write error

或者

The last packet successfully received from the server was xxx milliseconds ago. 
The last packet sent successfully to the server was xxxx milliseconds ago

自2.0.0版后Spring Boot默认连接池改为HikariCP

出现该异常原因:tomcat连接池testWhileIdle属性默认为false,连接闲置时,并未进行验证,当数据库连接不稳定(网络波动,短暂断网)或者长时间不用连接超时(mysql默认连接8小时未用则超时),池中保有的连接其实已经断开,但由于没有检查,连接池还是认为当前连接可用,当程序调用数据库时,就会抛出异常

解决方案:

解决方法的主题思路是:设置testOnBorrow=true,即当从连接池取连接时先检验连接是否有效

  1. 使用spring boot默认配置情况下,一般不会出现该问题(spring自动帮我们设置了tomcat连接池的相关属性),如需定制,使用
spring.datasource.tomcat.*=

tomcat后面配置tomcat连接池中的各种属性,如

spring.datasource.tomcat.testOnBorrow=true
spring.datasource.tomcat.validationQuery=SELECT 1 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据引用\[1\]和引用\[2\]的描述,出现"java.net.SocketException: Connection reset by peer: socket write error"异常通常是由于在客户端或服务器端的读写操作中出现问题。在引用\[2\]中提到,问题可能出在文件路径错误导致文件不存在,从而导致写操作出错。因此,建议检查文件路径是否正确,并确保文件存在。 此外,根据引用\[3\]的描述,启动Java Web服务器建立了一个socket连接,并通过点击网页上传文件的按钮来保存文件并调用发送文件的方法。因此,还需要检查与socket连接相关的代码,确保连接的正确建立和关闭。 综上所述,要解决"java.net.SocketException: Connection reset by peer: socket write error"异常,需要检查以下几个方面: 1. 检查文件路径是否正确,确保文件存在。 2. 检查与socket连接相关的代码,确保连接的正确建立和关闭。 3. 如果问题仍然存在,可以考虑进一步排查其他可能导致该异常的因素,例如网络连接问题或其他代码逻辑错误。 希望以上信息对您有帮助。如果您还有其他问题,请随提问。 #### 引用[.reference_title] - *1* [Jedis高并发下操作redis报错:java.net.SocketException: Connection reset by peer: socket write error](https://blog.csdn.net/huangdi1309/article/details/121939282)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Caused by: java.net.SocketException: Connection reset by peer: socket write error](https://blog.csdn.net/youjohLee/article/details/118075816)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [java.net.SocketException: Connection reset by peer: socket write error](https://blog.csdn.net/qq_54224923/article/details/123493218)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值