libpq
, podstawowa biblioteka klienta PostgreSQL, ma keepalives
opcję włączenia utrzymywania protokołu TCP .
Wygląda na to, że PgAdmin-III nie pozwala bezpośrednio określić dowolnych parametrów połączenia, ale istnieje obejście.
Gdy spojrzysz na konfigurację połączenia w PgAdmin-III, zobaczysz opcję „usługi”. Odnosi się to do pliku usługi połączenia . Aby go użyć, utwórz plik ~/.pg_service.conf
z treściami takimi jak:
[myherokudb]
user=myusername
keepalives=1
connect_timeout=20
keepalives_idle=10
i podczas łączenia z PgAdmin-III wprowadź myherokudb
w service
polu.
Spowoduje to, że PgAdmin-III będzie używać parametrów połączenia określonych w pliku usługi, w tym włączania keepalives.
(Jeśli korzystasz z systemu Windows, plik usługi może znajdować się w innej lokalizacji; zobacz dokumentację).
Nie ma zmiennej środowiskowej libpq
do kontrolowania keepalives, więc nie możesz ustawić tego w ten sposób, będziesz musiał użyć pliku usługi.
Dodanie obsługi dodatkowych parametrów połączenia do PgAdmin-III lub pola wyboru w opcjach połączenia w celu kontrolowania parametru keepalives powinno być dość trywialne. Zastanawiam się, czy Dave zrozumiał, o co prosiłeś, o twoją ofertę sfinansowania pracy.
Aktualizacja : plik usługi jest sprawdzany w lokalizacji określonej w PGSYSCONFDIR
zmiennej środowiskowej. Jeśli nie jest ustawiony, domyślnie jest to lokalizacja specyficzna dla platformy, która nie wydaje się być odpowiednio udokumentowana dla systemu Windows. Prześlę łatkę do dokumentacji. Dokumentacja dla.pgpass
pokazuje jej ścieżkę tak, %APPDATA%\postgresql\pgpass.conf
jakby tak ~/.pg_service.conf
było, %APPDATA%\postgresql\pg_service.conf
ale nie wydaje się.
Właściwa ścieżka to:
%APPDATA%\postgresql\.pg_service.conf
Więc:
- Start-> Uruchom
- `% APPDATA%
- utwórz katalog „postgresql”, jeśli nie istnieje
- utwórz plik „.pg_service.conf” jako plik tekstowy z zawartością podaną powyżej (patrz uwaga poniżej dotycząca nazewnictwa plików)
- W PgAdmin-III wpisz „localhost” w polu Nazwa hosta i nazwę usługi w polu usługi.
Przetestowałem na Windowsie i stwierdziłem, że nie można pozostawić host
pola w PgAdmin-III pustym w Windows. Wygląda na to, że PgAdmin-III zastępuje dowolny host określony w pliku usługi tym, co określono w oknie dialogowym połączenia. Dlatego nie należy dołączać host
klucza do pliku usługi. (Zgłoś błąd).
Spraw, aby „ukrywanie rozszerzeń plików dla znanych typów plików” było wyłączone w systemie Windows, aby .pg_service.conf.txt
zamiast tego nie wywoływać go przypadkowo . Jeśli nie masz pewności, czy ma prawidłową nazwę, sprawdź kolumnę „Typ” w Eksploratorze Windows w widoku listy; będzie czytać „Dokument tekstowy”, jeśli będzie niepoprawnie nazwany .pg_service.conf.txt
i CONF File
poprawnie nazwany .pg_service.conf
. Jeśli masz problemy ze zmianą nazwy, wyłącz „ukryj rozszerzenia plików dla znanych typów plików” lub użyj rozsądnego edytora tekstu, takiego jak notatnik ++, który pozwoli ci tworzyć pliki o dowolnych nazwach.
Zanotuj początkowy kropka (kropka) w nazwie pliku. Tak, to jest inne pgpass.conf
i tak, to irytujące, graniczące z błędem.