PostgresQL数据库的参数需要KeepAlive和防火墙清理检查的时间

最近的项目中发现一个问题,如果数据库的SQL执行时间过长,比如2个小时的时候。

应用程序一等处于等待状态,而数据库的SQL已经执行完成了。感觉比较怪异。


查看log,应用程序没有任何错误信息,只要数据库输出了如下的信息:

  1.could not send data to client: XXX

  2.unexpected EOF on client connection

  3. disconnection: session time: 0:00:30.26 user=postgres database=postgres host=[local] port=


有这地方可以发现是数据库执行完SQL的时候找不到客户端的连接信息了。

刚开始怀疑是网络问题,但测试一下发现,如果是网络问题客户端也会出异常的。

最后怀疑到防火墙,防火墙的健康检查时间时间下是不是做了啥动作。


终于发现了防火墙健康检查的把进程删除了。而导致这个动作的原因是  KeepAlive的值没有设置合理。


参考URL:http://d.hatena.ne.jp/learn/20101016/p1

你可能感兴趣的:(PostgresQL数据库的参数需要KeepAlive和防火墙清理检查的时间)