libpq
基礎となるPostgreSQLクライアントライブラリ 持っています keepalives
TCPキープアライブを有効にするオプション 。
PgAdmin-IIIでは任意の接続パラメータを直接指定できないようですが、回避策があります。
PgAdmin-IIIの接続設定を見ると、 "service"オプションが見えます。これは 接続サービスファイル 。それを使うには、 ~/.pg_service.conf
のような内容で:
[myherokudb]
user=myusername
keepalives=1
connect_timeout=20
keepalives_idle=10
PgAdmin-IIIから接続する場合 myherokudb
の中に service
フィールド。
これによりPgAdmin-IIIはキープアライブを有効にすることを含めてサービスファイルで指定された接続パラメータを使用します。
(Windowsを使用している場合、サービスファイルは別の場所にある可能性があります。ドキュメントを参照してください)。
に環境変数はありません libpq
キープアライブを制御するには、そのように設定することはできません。サービスファイルを使用する必要があります。
PgAdmin-IIIに追加の接続パラメータのサポートを追加するか、keepalivesパラメータを制御するための接続オプションのチェックボックスを追加するのは、かなり簡単なはずです。 Daveは、あなたがその仕事に資金を提供するというあなたの申し出について何を求めているのか理解していたのでしょうか。
更新 :サービスファイルは、で指定された場所を検索します。 PGSYSCONFDIR
環境変数設定されていない場合、デフォルトはプラットフォーム固有の場所になります。これは、Windowsでは適切に文書化されていないようです。ドキュメンテーションパッチを提出します。 のドキュメント .pgpass
パスを %APPDATA%\postgresql\pgpass.conf
しかし、そう ~/.pg_service.conf
あるべき %APPDATA%\postgresql\pg_service.conf
...でもそうではないようです。
実際、正しいパスは次のとおりです。
%APPDATA%\postgresql\.pg_service.conf
そう:
- 開始 - >実行
- `%APPDATA%
- 存在しない場合は、ディレクトリ "postgresql"を作成します。
- 上記の内容でテキストファイルとしてファイル ".pg_service.conf"を作成します(下記のファイル命名に関する注意を参照)。
- PgAdmin-IIIでは、ホスト名に「localhost」を入力し、サービスフィールドにサービス名を入力します。
私はWindows上でテストしました、そして、あなたはあなたを去ることができないとわかりました host
WindowsではPgAdmin-IIIのフィールドは空白です。 PgAdmin-IIIはサービスファイルで指定されたホストを接続ダイアログで指定されたもので上書きします。だからあなたは含めるべきではありません host
サービスファイルにキー入力します。 (私はバグを報告します)。
Windowsでは「既知のファイルの種類のファイル拡張子を隠す」が無効になっているので、誤って呼び出さないでください。 .pg_service.conf.txt
代わりに。名前が正しいかどうかわからない場合は、リストビューでWindowsエクスプローラの[種類]列を確認してください。名前が間違っていると、「テキスト文書」と表示されます。 .pg_service.conf.txt
、そして CONF File
正しく命名されていれば .pg_service.conf
。名前の変更に問題がある場合は、「既知のファイルタイプのファイル拡張子を隠す」をオフにするか、次のような実用的なテキストエディタを使用してください。 メモ帳++ これで、好きな名前のファイルを作成できます。
ファイル名の先頭のピリオド(ドット)に注意してください。はい、それは違います pgpass.conf
そして、はい、それは厄介です、バグに接しています。