libpq Postgres PQexecParams超时2小时

时间:2018-04-12 07:39:11

标签: postgresql timeout libpq

我使用libpq v9.6.8作为我的应用程序(24/7运行),它将数据插入postgres数据库。我还运行PQexecParams来获取表格列。但随机(有时一周一次,但周末两次)这个阻塞PQexecParams呼叫在约2小时后以某种方式返回。在这两个小时内,我的应用程序就会挂起......插入是通过异步PQsendQueryParams完成的。

有没有办法为PQexecParams配置超时(因为我在libgres服务器上找不到任何适当的超时设置)?有没有更好的方法来执行select同步?

提前谢谢

1 个答案:

答案 0 :(得分:1)

这两个小时建议TCP keepalive踢,并确定连接已经坏了。

您可以设置keepalives_idle连接参数,以便更早发生超时,并且您不会停顿两个小时。

但是你可能也想知道网络连接中止了什么。你的第一眼看看应该是PostgreSQL服务器日志;您应该看到与客户端上的错误消息匹配的错误消息。可能是网络组件出现故障 - 特别是寻找防火墙。