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就会被拒绝掉。

解决办法:

  1. 发送keepalive报文,保证20分钟内有报文交互
  2. 防火墙放通A-B,B-A 所有

这个cese很奇葩,分享给大家,明天继续~

Windows异常蓝屏重启多半是安全问题