libpq
, la libreria client PostgreSQL sottostante, ha l' keepalives
opzione per abilitare keepalive TCP .
Sembra che PgAdmin-III non ti permetta di specificare direttamente parametri di connessione arbitrari, ma c'è una soluzione alternativa.
Quando guardi la configurazione della connessione in PgAdmin-III, vedrai un'opzione di "servizio". Questo si riferisce al file del servizio di connessione . Per usarlo, crea un ~/.pg_service.conf
con contenuti come:
[myherokudb]
user=myusername
keepalives=1
connect_timeout=20
keepalives_idle=10
e quando ci si collega da PgAdmin-III entrare myherokudb
nel service
campo.
Ciò farà sì che PgAdmin-III utilizzi i parametri di connessione specificati nel file di servizio, inclusa l'abilitazione di keepalive.
(Se sei su Windows, il file di servizio potrebbe trovarsi in un'altra posizione; consultare la documentazione).
Non ci sono variabili d'ambiente libpq
per controllare keepalive, quindi non puoi impostarlo in questo modo, dovrai usare un file di servizio.
L'aggiunta di supporto per parametri di connessione aggiuntivi a PgAdmin-III, o una casella di controllo nelle opzioni di connessione per controllare il parametro keepalives, dovrebbe essere piuttosto banale. Mi chiedo se Dave abbia capito cosa stavi chiedendo per la tua offerta di finanziamento del lavoro.
Aggiornamento : il file di servizio viene cercato nella posizione specificata nella PGSYSCONFDIR
variabile di ambiente. Se non impostato, viene impostato automaticamente su una posizione specifica della piattaforma, che non sembra essere documentata correttamente per Windows. Invierò una patch di documentazione. La documentazione per.pgpass
mostra il suo percorso come %APPDATA%\postgresql\pgpass.conf
se, quindi ~/.pg_service.conf
dovrebbe essere %APPDATA%\postgresql\pg_service.conf
... ma non sembra essere.
In effetti, il percorso corretto è:
%APPDATA%\postgresql\.pg_service.conf
Così:
- Start-> Esegui
- `% Appdata%
- creare la directory "postgresql" se non esiste
- creare il file ".pg_service.conf" come file di testo con i contenuti sopra indicati (vedere la nota sotto relativa alla denominazione dei file)
- In PgAdmin-III, immettere "localhost" nel nome host e il nome del servizio nel campo del servizio.
Ho provato su Windows e ho scoperto che non è possibile lasciare il host
campo in PgAdmin-III vuoto su Windows. PgAdmin-III sembra sovrascrivere qualsiasi host specificato nel file di servizio con ciò che è specificato nella finestra di dialogo della connessione. Quindi non dovresti includere una host
chiave nel file di servizio. (Segnalerò un bug).
Rendi "nascondi estensioni di file per tipi di file noti" è disattivato in Windows, quindi non chiamarlo accidentalmente .pg_service.conf.txt
. Se non sei sicuro che abbia il nome giusto o meno, controlla la colonna "Tipo" in Esplora risorse nella vista elenco; leggerà "Documento di testo" se ha un nome errato .pg_service.conf.txt
e CONF File
se ha un nome corretto .pg_service.conf
. Se hai problemi a rinominarlo, disattiva "nascondi estensioni di file per tipi di file conosciuti" o usa un editor di testo sensibile come notepad ++ che ti permetterà di creare file con il nome che preferisci.
Nota il punto iniziale (punto) nel nome del file. Sì, è diverso pgpass.conf
e sì, è fastidioso, al limite di un bug.