libpq
Die zugrunde liegende PostgreSQL-Clientbibliothek bietet die keepalives
Option, TCP-Keepalives zu aktivieren .
Es sieht so aus, als ob Sie mit PgAdmin-III keine beliebigen Verbindungsparameter direkt angeben können, aber es gibt eine Problemumgehung.
Wenn Sie sich die Verbindungskonfiguration in PgAdmin-III ansehen, sehen Sie eine "Dienst" -Option. Dies bezieht sich auf die Verbindungsdienstdatei . Um es zu verwenden, erstellen Sie ein ~/.pg_service.conf
mit Inhalten wie:
[myherokudb]
user=myusername
keepalives=1
connect_timeout=20
keepalives_idle=10
und wenn Sie eine Verbindung von PgAdmin-III herstellen, geben Sie myherokudb
das service
Feld ein.
Dadurch verwendet PgAdmin-III die in der Servicedatei angegebenen Verbindungsparameter, einschließlich der Aktivierung von Keepalives.
(Wenn Sie unter Windows arbeiten, befindet sich die Servicedatei möglicherweise an einem anderen Speicherort. Weitere Informationen finden Sie in der Dokumentation.)
Es gibt keine Umgebungsvariable libpq
zur Steuerung von Keepalives. Sie können dies also nicht so einstellen. Sie müssen eine Servicedatei verwenden.
Das Hinzufügen von Unterstützung für zusätzliche Verbindungsparameter zu PgAdmin-III oder ein Kontrollkästchen in den Verbindungsoptionen zur Steuerung des Keepalives-Parameters sollte ziemlich trivial sein. Ich frage mich, ob Dave verstanden hat, worum Sie bei Ihrem Angebot zur Finanzierung der Arbeit gebeten haben.
Update : Die Servicedatei wird an dem in der PGSYSCONFDIR
Umgebungsvariablen angegebenen Speicherort nachgeschlagen . Wenn nicht festgelegt, wird standardmäßig ein plattformspezifischer Speicherort verwendet, der für Windows nicht ordnungsgemäß dokumentiert zu sein scheint. Ich werde einen Dokumentations-Patch einreichen. Die Dokumentation für.pgpass
zeigt seinen Weg so, als %APPDATA%\postgresql\pgpass.conf
ob es so ~/.pg_service.conf
sein sollte %APPDATA%\postgresql\pg_service.conf
... aber es scheint nicht so zu sein.
In der Tat ist der richtige Weg:
%APPDATA%\postgresql\.pg_service.conf
So:
- Start-> Ausführen
- % APPDATA%
- Erstellen Sie das Verzeichnis "postgresql", falls es nicht vorhanden ist
- Erstellen Sie die Datei ".pg_service.conf" als Textdatei mit dem oben angegebenen Inhalt (siehe Hinweis unten zur Benennung der Datei).
- Geben Sie in PgAdmin-III "localhost" als Hostnamen und den Dienstnamen als Dienstfeld ein.
Ich habe unter Windows getestet und festgestellt, dass Sie das host
Feld in PgAdmin-III unter Windows nicht leer lassen können. PgAdmin-III scheint jeden in der Servicedatei angegebenen Host mit den im Verbindungsdialog angegebenen zu überschreiben. Sie sollten also keinen host
Schlüssel in die Servicedatei aufnehmen. (Ich werde einen Fehler melden).
"Windows-Dateierweiterungen für bekannte Dateitypen ausblenden" ist in Windows deaktiviert, damit Sie sie nicht versehentlich aufrufen .pg_service.conf.txt
. Wenn Sie sich nicht sicher sind, ob der Name richtig ist oder nicht, überprüfen Sie die Spalte "Typ" im Windows Explorer in der Listenansicht. Es wird "Textdokument" gelesen, wenn es falsch benannt .pg_service.conf.txt
ist und CONF File
wenn es richtig benannt ist .pg_service.conf
. Wenn Sie Probleme beim Umbenennen haben, deaktivieren Sie "Dateierweiterungen für bekannte Dateitypen ausblenden" oder verwenden Sie einen sinnvollen Texteditor wie Notepad ++ , mit dem Sie Dateien mit beliebigen Namen erstellen können.
Beachten Sie den führenden Punkt (Punkt) im Dateinamen. Ja, das ist anders als pgpass.conf
, und ja, das ist ärgerlich und grenzt an einen Fehler.