エラー: "org.postgresql.util.PSQLException: FATAL: 申し訳ありませんが、すでにクライアントが多すぎます"
Postgresql データベースを使用すると、接続制限が設定されていることを示すこのエラー メッセージが表示される場合があります。
このエラーは、コードが Postgresql データベースへの同時接続の最大許容数を超えた場合に発生します。これは通常、 conn.close(); を使用して適切に閉じられずに、ループ内で複数の接続が開かれた場合に発生します。その結果、クラスの破棄時に接続は解放されません。
修正:
この問題を解決するには、次の手順を実行します:
protected void finalize() throws Throwable { try { your_connection.close(); } catch (SQLException e) { e.printStackTrace(); } super.finalize(); }
Thisコードにより、クラスがガベージ コレクションされるときに接続が閉じられることが保証されます。
show max_connections;
デフォルトの制限は次のとおりです。 100. 必要に応じてこの値を調整します。
SELECT * FROM pg_stat_activity;
デバッグ:
max_connections の増加:
許可される接続の最大数を増やすには、postgresql.conf ファイルを見つけて次の行を編集します:
max_connections=100
この値をより大きな数値に設定し、再起動してください。
最大 max_connections:
次のクエリを実行して理論上の最大接続数を決定します:
select min_val, max_val from pg_settings where name='max_connections';
ただし、これをお勧めします。暴走プロセスが接続を独占しないように適切な制限を設定します。
以上がPostgreSQL データベースで「org.postgresql.util.PSQLException: FATAL: 申し訳ありません、クライアントが多すぎます」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。