我有一个实现会话级别咨询锁定的后端应用程序。但是,如果客户端突然失去连接(例如,在连接时强制重新启动),则建议锁保持在那里并且不会消失。
有没有办法在连接断开后始终使锁定过期?
感谢。
答案 0 :(得分:1)
我认为锁定保持不变,因为后端进程仍在那里。
除非服务器尝试联系客户端,否则操作系统可能需要很长时间才能检测到客户端套接字不再存在,这就是PostgreSQL后端将被终止的时间。
您可以将PostgreSQL参数tcp_keepalives_idle
设置为较小的值,以减少检测到死连接的时间。