Oracle 连接超时与会话存活参数(笔记)

Oracle 连接超时与会话存活参数(笔记)

做个笔记,某些项目会遇到如下2个警告:
1、tomcat 日志大量java.sql.SQLException: No more data to read from socket
Oracle 连接超时与会话存活参数(笔记)_第1张图片

2、告警日志有大量TNS-12535 TNS:operation timed out TNS-00505警告
Oracle 连接超时与会话存活参数(笔记)_第2张图片
目前调整方法,添加如下两个参数
增加下面的内容

1、SQLNET.EXPIRE_TIME = 1
个人对此参数的理解是,数据库主动每隔1min去探查客户端会话,如果会话网络正常,那么此会话继续保持,否则pmon清除这个会话。因为如果内网有防火墙,某些长连接会被防火墙kill,如上参数可防止客户端会话被kill(理解可能不严谨)

2、
LSNRCTL> set inbound_connect_time 600
LSNRCTL> save_config
上面参数,大致用途是客户端与服务端建立连接,可以容忍的时间,超过这个时间失败就报WARNING: inbound connection timed out (ORA-3136)
Oracle 连接超时与会话存活参数(笔记)_第3张图片
故障排除指南 ORA-3136:WARNING Inbound Connection Timed Out (文档 ID 2331569.1)
Oracle 连接超时与会话存活参数(笔记)_第4张图片
Oracle 连接超时与会话存活参数(笔记)_第5张图片
Resolving Problems with Connection Idle Timeout With Firewall (文档 ID 257650.1)
Oracle 连接超时与会话存活参数(笔记)_第6张图片

3、上面调整的是数据库层面,根据mos操作系统也需要调优,调整如下:
使用 sysctl -A 命令查看所有有效的内核变量,使用 grep net.ipv4 过滤。
$ sysctl -A | grep net.ipv4
net.ipv4.tcp_keepalive_time - 在第一次keep alive请求发送后,不活动连接的时间
sysctl -w net.ipv4.tcp_keepalive_time=60

现在总共改了3个地方,先观察一段时间,晚一点再记录下调整效果

你可能感兴趣的:(案例)