Windows应用服务器执行数据导入时事务执行时间长的case
遇到一个case,Windows应用服务器执行数据导入时事务执行时间非常长,约30分钟, 且在执行过程中长时间运行后没有返回信息,具体表现为通过监控工具看到有进程在运行,但数据库没有返回信息。
先在应用服务器 对应 时间长ping ,ping没有任何丢包或者延时。
业务没有设置超时时间。网络交换机层面没有会话限制。
机器连机器自建的oracle走内网
vm2vm 不依赖转发会话
抓包看 客户端发起了请求,服务器端没有回,20min会超时!
为什么会是20min?为什么呢?
…..
排查有可能出现的问题,在仔细看防火墙配置时候,发现A这里只放通了A到B出方向的防火墙策略,没有放通B到A入向的策略!
那返回的时候入方向如果没有放通不就是新的session了么
找到问题了。
A访问B,防火墙会形成一个session,B回包会正常匹配到这个session,但是如果A-B通信后长时间没有通信,那么这个session过了20min后就会超时。如果过了20min后,B再给A回包,这时session超时了,防火墙就判断这是一个新的连接,如果防火墙没放通B到A就会被拒绝掉。
解决办法:
- 发送keepalive报文,保证20分钟内有报文交互
- 防火墙放通A-B,B-A 所有
这个cese很奇葩,分享给大家,明天继续~