libpq, podstawowa biblioteka klienta PostgreSQL, ma keepalivesopcję 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.confz treściami takimi jak:
[myherokudb]
user=myusername
keepalives=1
connect_timeout=20
keepalives_idle=10
i podczas łączenia z PgAdmin-III wprowadź myherokudbw servicepolu.
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 libpqdo 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 PGSYSCONFDIRzmiennej ś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.confjakby tak ~/.pg_service.confbyło, %APPDATA%\postgresql\pg_service.confale 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ć hostpola 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ć hostklucza 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.txtzamiast 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.txti CONF Filepoprawnie 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.confi tak, to irytujące, graniczące z błędem.