libpq, la libreria client PostgreSQL sottostante, ha l' keepalivesopzione 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.confcon contenuti come:
[myherokudb]
user=myusername
keepalives=1
connect_timeout=20
keepalives_idle=10
e quando ci si collega da PgAdmin-III entrare myherokudbnel servicecampo.
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 libpqper 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 PGSYSCONFDIRvariabile 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.confse, quindi ~/.pg_service.confdovrebbe 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 hostcampo 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 hostchiave 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.txte CONF Filese 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.confe sì, è fastidioso, al limite di un bug.