Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
30次连接后无法连接postgresql_Postgresql_Postgresql 9.1_Postgresql 9.3 - Fatal编程技术网

30次连接后无法连接postgresql

30次连接后无法连接postgresql,postgresql,postgresql-9.1,postgresql-9.3,Postgresql,Postgresql 9.1,Postgresql 9.3,我有两台postgresql云服务器,第一台工作正常,但30分钟后第二台我无法从java应用程序连接。当我从pgadmin连接时,它显示30到40个连接,在断开这些连接后,所有事情都会顺利进行。 其 配置: postgresql/9.3 最大连接数=100 共享缓冲区=4GB 当同一个应用程序连接到具有相同模式的其他postgresql时,一切都会永远正常运行 配置: postgresql/9.1 最大连接数=100 共享缓冲区=32MB 你能帮我理解或解决这个问题吗我正在处理一个有数百个打开连

我有两台postgresql云服务器,第一台工作正常,但30分钟后第二台我无法从java应用程序连接。当我从pgadmin连接时,它显示30到40个连接,在断开这些连接后,所有事情都会顺利进行。 其

配置: postgresql/9.3

最大连接数=100

共享缓冲区=4GB

当同一个应用程序连接到具有相同模式的其他postgresql时,一切都会永远正常运行

配置: postgresql/9.1

最大连接数=100

共享缓冲区=32MB


你能帮我理解或解决这个问题吗

我正在处理一个有数百个打开连接的PostgreSQL 9.3实例。我同意你的看法,开放的连接本身不应该是一个问题。由于我们没有太多的信息,下面介绍如何开始故障排除

  • 检查服务器日志是否有任何错误。可能在操作系统级别上存在启动连接的问题
  • 尝试以psql作为应用程序用户登录。这个问题还存在吗?如果不是,问题不在于PostgreSQL。我会仔细看一下Java代码,看看那里是否发生了什么事情
  • 请注意,psql和其他libpq操作可能无法提供完整信息。在观看数据包捕获时,尝试通过非SSL连接进行本地连接。在这种情况下,您可以找到(并查找)连接的SQLSTATE错误。这是因为,出于传统和向后兼容性的原因,libpq在连接到数据库时不会向客户端应用程序传递sqlstate

  • 但我敢打赌这不是postgresql的问题。这可能是操作系统问题。这可能是一个资源问题。这可能是客户端应用程序问题。

    为什么要打开30-40个连接?它们都来自您的应用程序吗?是的,所有都来自我的应用程序,但限制为100,所以不应该出现问题。为什么您的应用程序(我假设它是一个实例)保留40个连接打开?无论哪种方式,您都可能以根用户身份登录,如果无法捕获应用中的错误,请使用与应用相同的用户尝试psql。我尝试使用应用程序、pgadmin和其他工具连接到数据库。一旦我从应用程序注销,我可以看到连接处于休眠状态。它不应该终止吗?