libpq
, pustaka klien PostgreSQL yang mendasarinya, memiliki keepalives
opsi untuk mengaktifkan TCP keepalives .
Sepertinya PgAdmin-III tidak memungkinkan Anda untuk menentukan parameter koneksi sewenang-wenang secara langsung, tetapi ada solusinya.
Ketika Anda melihat konfigurasi koneksi di PgAdmin-III, Anda akan melihat opsi "service". Ini merujuk ke file layanan koneksi . Untuk menggunakannya, buat ~/.pg_service.conf
dengan isi seperti:
[myherokudb]
user=myusername
keepalives=1
connect_timeout=20
keepalives_idle=10
dan saat terhubung dari PgAdmin-III masukkan myherokudb
di service
bidang.
Ini akan menyebabkan PgAdmin-III untuk menggunakan parameter koneksi yang ditentukan dalam file layanan, termasuk mengaktifkan keepalives.
(Jika Anda menggunakan Windows, file layanan mungkin berada di lokasi lain; lihat dokumentasinya).
Tidak ada variabel lingkungan libpq
untuk mengontrol keepalives, jadi Anda tidak dapat mengaturnya seperti itu, Anda harus menggunakan file layanan.
Menambahkan dukungan untuk parameter koneksi tambahan ke PgAdmin-III, atau kotak centang di opsi koneksi untuk mengontrol parameter keepalives, seharusnya cukup sepele. Saya ingin tahu apakah Dave mengerti apa yang Anda minta untuk tawaran Anda untuk mendanai pekerjaan.
Pembaruan : File layanan melihat ke lokasi yang ditentukan dalam PGSYSCONFDIR
variabel lingkungan. Jika tidak disetel, default ke lokasi spesifik platform, yang sepertinya tidak didokumentasikan dengan baik untuk Windows. Saya akan mengirimkan tambalan dokumentasi. Dokumentasi untuk.pgpass
menunjukkan jalannya seolah- %APPDATA%\postgresql\pgpass.conf
olah, jadi ~/.pg_service.conf
seharusnya %APPDATA%\postgresql\pg_service.conf
... tapi sepertinya tidak.
Sebenarnya, jalur yang benar adalah:
%APPDATA%\postgresql\.pg_service.conf
Begitu:
- Mulai-> Jalankan
- `% APPDATA%
- buat direktori "postgresql" jika tidak ada
- buat file ".pg_service.conf" sebagai file teks dengan konten yang diberikan di atas (lihat catatan di bawah penamaan file)
- Di PgAdmin-III, masukkan "localhost" di nama Host, dan nama layanan di bidang layanan.
Saya menguji pada Windows, dan menemukan bahwa Anda tidak dapat meninggalkan host
bidang di PgAdmin-III kosong pada Windows. PgAdmin-III tampaknya menimpa semua host yang ditentukan dalam file layanan dengan apa yang ditentukan dalam dialog koneksi. Jadi Anda tidak harus memasukkan host
kunci dalam file layanan. (Saya akan melaporkan bug).
Jadikan "sembunyikan ekstensi file untuk tipe file yang dikenal" dimatikan di Windows, jadi Anda tidak sengaja menyebutnya .pg_service.conf.txt
. Jika Anda tidak yakin apakah namanya benar atau tidak, periksa kolom "Jenis" di Windows Explorer dalam tampilan daftar; ia akan membaca "Dokumen Teks" jika namanya tidak benar .pg_service.conf.txt
, dan CONF File
jika namanya benar .pg_service.conf
. Jika Anda memiliki masalah mengubah nama itu, matikan "sembunyikan ekstensi file untuk jenis file yang diketahui", atau gunakan editor teks yang masuk akal seperti notepad ++ yang akan memungkinkan Anda membuat file dengan nama yang Anda suka.
Catat periode terkemuka (titik) dalam nama file. Ya, itu berbeda dengan pgpass.conf
, dan ya, itu menjengkelkan, berbatasan dengan bug.