几种因网络波动导致应用与数据库操作异常的现象

文章目录

环境

系统平台:银河麒麟 (X86_64)

版本:4.5.8

文档用途

介绍几种因网络波动导致应用与数据库操作异常的现象。

详细信息

网络超时相关

应用端常见的连接超时相关报错信息,如:

复制代码
Connection is not available, request timed out after 30000ms.
An I/O error occurred while sending to the backend.
java.net.SocketException: Connection timed out (Write/Read failed)

数据库端常见的报错信息,如:

复制代码
could not send data to client
could not receive data from client

当应用端有报错信息"An I/O error occurred while sending to the backend."时,可以采取以下排查方向:

1、传参和结果集数据量太大,网络传输限制等;

2、传参参数配置错误或格式错误,写错等;

3、排查数据库进程是否有waiting状态(锁、长事务、synchronous_standby_names ''等);

4、排查网络,数据库和应用之间网络稳定性,特别是跨网段的情况,telnet、ping无法确定网络稳定性;

当应用端有报错信息,数据库端也有报错信息时,基本确认是网络不稳定导致的,但是用telnet、ping检测时网络是正常的。这时需仔细检查应用配置的数据库连接参数信息。

当以上方案均无法确定问题时,需要将应用和数据库部署在同网段,甚至是同一台服务器测试看是否有报错信息;相同网段时,若网络配置不正确也会有以上报错。

当使用proxy时,需取消proxy,直连数据库测试是否有报错信息。

文章【019523501 应用程序报错:An I/O error occurred while sending to the backend】中提到的socketTimeout参数,默认值为0(秒)永不超时,需要根据实际情况配置,某些情况下配置超时断开可以防止客户端无限期地等待响应,从而避免资源被长时间占用,防止数据库操作因网络问题或服务器无响应而长时间阻塞。

SQL执行异常

情况一:

管理工具和psql执行sql很快,但是应用代码执行sql时快时慢。

将应用和数据库部署在同一台服务器,验证sql执行情况;若执行很快说明数据库执行sql正常,需排查其他问题;若同样执行时快时慢,需仔细排查数据库运行情况。

情况二:

管理工具执行sql很快,但是psql与应用代码执行sql很慢,psql中使用schema.table执行也很慢,但是set search_path后,执行sql很快。

这种情况是数据库通过search_path检索表慢,如果使用的是jdbc,jdbc连接串添加currentSchema可以解决此问题。

相关文档

相关推荐
有想法的py工程师11 分钟前
PostgreSQL 字符集双重转义击穿 磁盘 I/O
数据库·postgresql
为思念酝酿的痛14 分钟前
数据链路层--帧传输与链路控制
网络·网络协议·计算机网络·数据链路层
头发还在的女程序员15 分钟前
【无标题】
网络·数据库·短剧小程序·短剧系统·海外短剧·短剧后台
千千寰宇18 分钟前
[数据库系统] 数据库系统的设计原理研究
数据结构·数据库·database-opengemini/influxdb·database-dament/达梦
Thneonl33 分钟前
全集群钟差 300 毫秒会发生什么:证书悄悄过期,日志倒流
运维·后端
麦壳饼34 分钟前
SonnetDB SQL 分页查询:LIMIT/OFFSET 与 FETCH 语法
数据库·sonnetdb
是jin奥38 分钟前
Ubuntu 访问 Windows 共享目录
linux·运维·ubuntu
Gauss松鼠会38 分钟前
【GaussDB】破除gaussdb ugin索引支持中文模糊查询的迷思-字符序
java·运维·服务器·网络·数据库·gaussdb·经验总结
科技象限42 分钟前
数据防泄密系统怎么选?看它怎么把几道防线叠成网
运维·安全·网络安全·安企神
luiyarch43 分钟前
汽车电子ISO 21448 SOTIF系列(第26期):未知危险场景的确认方法(下)——AI驱动的场景发现
网络·人工智能·安全·车载系统·汽车