我正在运行一个需要两个多小时的 postgres 查询。这个查询是在 java 程序中使用休眠执行的。大约 1.5 小时后,查询停止显示在 pg_admin 的服务器状态中。
由于查询从数据库上的活动查询列表中消失了,我期待成功或超时异常。但是,我什么都没有。(没有例外)并且我的线程陷入等待状态。我知道查询尚未完成,因为它应该在表中进行一些插入,而我在表中找不到预期的行。
我正在使用 pgbouncer 进行连接池,并且禁用了 query_timeout。如果是休眠超时,我应该有一个例外。DB机器和Client机器上的OS参数(机器运行java程序)
- tcp_keepalive_time 为 7200(秒)
- tcp_keepalive_intvl = 75
- tcp_keepalive_probes = 9(探测数) 两台机器都运行 RHEL 操作系统。我无法解决这个问题。