我有一个用户遇到了我们的应用程序崩溃的问题,并没有正确关闭他与数据库的连接 - 最终达到他的连接限制而无法重新登录。
没关系。问题最终得到解决,应用程序正在正确关闭连接。
我想知道,如果用户达到了他的连接限制,并且没有我做任何事情,Postgres 9.1的默认设置是单独删除连接吗?
答案 0 :(得分:0)
嗯,对于你的实际问题:
如果用户达到了他的连接限制,并且没有我做任何事情,Postgres 9.1的默认设置是单独删除连接吗?
如果您正在谈论的连接是与真实客户端的活动连接(即客户端仍然存在,没有崩溃和退出,并且可以读取和写入其连接套接字),Postgres 将不会 "自行删除连接"。如果您对修剪此类闲置客户端的方式感兴趣,请参阅this question。
另一方面,Postgres后端可能名义上连接到一个真正崩溃或以其他方式退出的客户端,正如您之前提到的那样。在这种情况下,Postgres可能不会注意到客户端已经消失,而不是仅仅处于空闲状态一段时间。我相信准确的时间将由" TCP keepalive time"操作系统设置,或者您甚至可以通过连接参数在客户端中设置此设置:请参阅各种keepalives-related settings。