当前位置: 首页 > Database, postgresql > 正文

postgresql 连接终止过程

通常的终止过程的优雅方法是前端发送一条 Terminate (终止)消息并且立刻关闭联接。 一旦收到消息,后端马上关闭联接并且退出。

在少数情况下(比如一个管理员命令数据库关闭),后端可能在没有任何前端请求的情况下断开连接。 在这种情况下,后端将在它断开连接之前尝试发送一个错误或者通知信息,给出断开的原因。

其它终止的情况发生在各种失效的场合,比如某一方的内核转储,失去通讯链路, 丢失了消息边界同步等。不管是前端还是后端看到了一个意外的连接关闭,那么它应该清理现场并且终止。 如果前端不想终止自己,那么它可以通过替换服务器的方法重启一个新的后端。 如果收到了一个无法识别的消息,那么我们也建议关闭连接,因为出现这种情况可能意味着是丢失了消息边界的同步。

不管是正常还是不正常的终止,任何打开的事务都会回滚,而不是提交。 不过,我们应该注意的是如果一个前端在一个非 SELECT 查询正在处理的时候断开, 那么后端很可能在注意到断开之前先完成查询的处理。 如果查询处于任何事务块之外(BEGIN … COMMIT 序列),那么其结果很可能在得知断开之前被提交。

    分享到:

本文固定链接: http://klwang.info/postgresql-terminate-connection/ | 数据库|Linux|软件开发

该日志由 klwang 于2014年01月21日发表在 Database, postgresql 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: postgresql 连接终止过程 | 数据库|Linux|软件开发
关键字: ,

postgresql 连接终止过程:等您坐沙发呢!

发表评论

*
快捷键:Ctrl+Enter