微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL独占锁定停止应用程序

我的应用程序测试对数据库非常困难.它们运行create,drop和alter table语句.但是,我仍然期望postresql即使在死锁的情况下也能处理这些问题(即检测锁定并将一个线程删除).我也没有同时运行请求.

但是,在我的情况下,它只是冻结,我必须手动杀死它们(如果我稍微改变运行的顺序,它可以工作,但这不会给我信心).锁表明create table语句有一个独占锁,一个事务也有一个.

有没有人经历过类似的事?有没有可以提供帮助的服务器设置?或者只是任何建议?

解决方法

Postgresql自动检测死锁.最有可能的是,你只是在一些尚未完成的声明中阻止.仅当两个语句相互等待时才会发生死锁.

如果你检查你的“锁树”到根(d阻塞b阻塞在a上有一个根),你很可能会在某个地方找到一个需要很长时间才能运行的事务,或者没有正确提交的事务但只是处于“闲置交易”模式.

既然你提到了线程 – 请注意,所有客户端库在客户端都不一定是线程安全的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐