当前位置: 首页 > 知识库问答 >
问题:

如何杀死PostgreSQL中的空闲连接?

顾俊茂
2023-03-14

我使用java servlets和pgadmin9.1。问题是servlets中的连接没有正确关闭,所以如果它达到最大连接就会导致空白屏幕。我不希望每个用户都在pgadmin中扩展最大连接...我在servlet的开始和结束点使用了下面的查询,但它显示的错误是..由于管理员命令连接终止..

ResultSet rs_1q=st_Query3.executeQuery("SELECT pg_terminate_backend(pg_stat_activity.procpid)FROM pg_stat_activity WHERE pg_stat_activity.current_query = '<IDLE>' AND procpid <> pg_backend_pid();");

共有1个答案

方和顺
2023-03-14

一般来说,正如@Rahul指出的,扼杀连接是不可取的。但是,如果这是最后的选择,以下是终止空闲连接的方法:

SELECT pg_terminate_backend(pid) FROM pg_stat_activity
WHERE datname = 'databasename'
AND pid <> pg_backend_pid()
AND state in ('idle');
 类似资料:
  • 问题内容: 我想超时并杀死空闲的Redis客户端。有可以设置的设置吗?我似乎记得在某处设置配置,但似乎再也找不到了。 我希望这是自动完成的,而不是手动调用client kill命令。 问题答案: 查看Redis配置文件(用于启动Redis的文件)​​。 只需检查未注释掉的参数,然后更改超时参数以将非零值放入秒中即可。应该重新启动实例以考虑到此参数。 要在正在运行的Redis实例上更改此参数,可以使

  • 比如说,KStream拓扑结构很简单:输入主题- 如果有一个应用程序实例使用

  • 我正在Windows机器上24/7运行Appium,以执行自动化测试。我正在Android10的模拟器上通过AVD运行这些测试。对于我的测试,我给出了正确的功能和运行功能很好。但几个小时/几天后,我得到以下错误: Android调试桥版本1.0.40 Appium版本1.20.2 Android10 PS我知道adb命令,但这解决了真正的问题吗?我不想每次都执行Java进程 更新-修复2-3

  • 问题内容: 我有以下设置: 我正在创建黄瓜步骤,我需要能够启动和关闭该应用程序。 问题答案: 您可以使用和频道杀死无限循环! 很不错的Go交换,不是吗? 现在,这有什么奇怪的地方?这是一个零尺寸的频道。我们只能用空结构填充它(即:)。可能是a 或其他,因为我们不使用频道的内容。重要的是,我们使用通道通知goroutine中的无限循环,该该停止了。 该语句用于捕获来自渠道的内容。这是一条阻塞语句(除

  • null 如果我理解正确的话,我们应该在启动时有1个空闲连接,根据负载从0到3,对吗? 正在发生的情况是:启动时1个连接,如果负载较低,最多3个空闲连接,高负载后超过3个空闲连接。然后这些连接不会立即关闭,我们不知道它们何时/是否会关闭(有时它们中的一些会关闭)。 所以问题是:这种行为正常吗? DAO子类的使用示例:

  • 问题内容: 如何java.lang.Thread用Java 杀死A ? 问题答案: 有关他们为何不赞成使用Sun的内容,请参见此主题。它详细介绍了为什么这是一种不好的方法,以及通常应该采取什么措施才能安全地停止线程。 他们建议的方式是使用共享变量作为标志,要求后台线程停止。然后可以由另一个请求线程终止的对象来设置此变量。