为什么会无限期地挂起INSERT查询并锁定PostgreSQL数据库和pgAdmin

问题描述 投票:0回答:1

[我有一个Spring Batch应用程序(尽管我认为我已经消除了Spring的罪魁祸首-下面更多内容),它使用42.2.8驱动程序的org.postgresql版本连接到作为AWS提供的PostgreSQL 11.1数据库。 RDS实例。该应用程序正在从Oracle安装程序迁移过来,但是每当我尝试运行该应用程序以提取数据时,它都会无限期地锁定该过程,并且在某种程度上似乎也锁定了数据库本身。

出于某种原因,当转换为目标postgres时,可以很好地吸收到Oracle中的代码似乎完全阻塞了INSERT语句(无论是Spring生成它们还是我是否尝试通过插入INSERT来绕过对Spring的所有调用语句和连接信息硬编码到应用程序主功能的顶部)。

最重要的是,在我杀死挂起的进程之前,有些事情我什至无法在pgAdmin中完成。 Web界面也无限期地挂起,因此我想弄清楚它的押韵或原因(我不能怪罪该表,因为其他表可能会被阻塞并且有时可以被访问;有时我可以建立新的连接,有时我不能;只要不中断选项卡/连接,我似乎确实可以刷新以前查询的表)

我不确定Spring是否在简单的调用周围自动装配或自动神奇地注入一些东西,所以我将制作一个简单的Java应用程序以消除这种可能性...我也可以尝试其他的postgres驱动程序,但令我担心的是,它似乎挂起了pgAdmin Web界面...但是无论如何,我希望有人遇到过这种情况,并且以前曾修复或缓解了这种情况,并且它并没有最终发表在易于阅读的文章中还

有人遇到这个问题吗?有无春季批处理?

我有一个Spring Batch应用程序(尽管我认为我已经淘汰了Spring作为罪魁祸首-下文中有更多内容,该应用程序使用org.postgresql驱动程序的42.2.8版本连接到PostgreSQL 11.1 ...

java spring postgresql jdbc
1个回答
0
投票

[首先,我在pgAdmin仪表板上找到了Sessions选项卡,它使我指向另一个标记为阻止新会话的会话-截断函数(从python脚本调用)完成并返回了控件(所有数据都是从桌子上消失了)-因此,它仍然在阻止任何东西并不明显

我发现this table/matrix of locking/blocking relationships确实表明截断将阻止所有内容:

© www.soinside.com 2019 - 2024. All rights reserved.