私は働いていますviaリモートのPostgreSQLデータベースでpgAdmin III。 pgAdminで何もせずにそれほど長くない期間(たとえば10〜15分)が経過すると、接続は自動的に期限切れになります。そのため、再接続するかどうかを尋ねるエラーメッセージが表示されます。これには約10秒かかります。データベース構造が崩れるため、以前開いていたスキーマを再度開く必要があります。
タイムアウトパラメータをどこかに変更して、接続の有効期限が長くなるのを防ぐ方法はありますか?
10〜15分後にPostgreSQLサーバーの接続が切断されるのは、ほとんどの場合、クライアントとサーバーの間の状態追跡ファイアウォール(ネットワークアドレス変換(NAT)を使用している)が原因です。このようなファイアウォールの多くは、デフォルトのタイムアウトが15分(900秒)です。
3つのサーバー側パラメーターtcp_keepalives_idle
、tcp_keepalives_interval
、tcp_keepalives_count
は、これらの状況で役立つように設計されています。ここにあるドキュメントを参照してください: http://www.postgresql.org/docs/9.2/static/runtime-config-connection.html#GUC-TCP-KEEPALIVES-IDLE
これにはクライアント側パラメーターもあります:keepalives
、keepalives_idle
、keepalives_interval
、keepalives_count
、これは接続時に設定できます。ここにあるドキュメントを参照してください: http://www.postgresql.org/docs/9.2/static/libpq-connect.html#LIBPQ-KEEPALIVES