libpq
, la bibliothèque cliente PostgreSQL sous-jacente, a la keepalives
possibilité d'activer les keepalives TCP .
Il semble que PgAdmin-III ne vous permette pas de spécifier directement des paramètres de connexion arbitraires, mais il existe une solution de contournement.
Lorsque vous regardez la configuration de connexion dans PgAdmin-III, vous verrez une option "service". Il s'agit du fichier du service de connexion . Pour l'utiliser, créez un ~/.pg_service.conf
avec un contenu comme:
[myherokudb]
user=myusername
keepalives=1
connect_timeout=20
keepalives_idle=10
et lors de la connexion à partir de PgAdmin-III, entrez myherokudb
dans le service
champ.
Cela entraînera PgAdmin-III à utiliser les paramètres de connexion spécifiés dans le fichier de service, y compris l'activation de keepalives.
(Si vous êtes sous Windows, le fichier de service peut se trouver dans un autre emplacement; voir la documentation).
Il n'y a pas de variable d'environnement libpq
pour contrôler les keepalives, donc vous ne pouvez pas le configurer de cette façon, vous devrez utiliser un fichier de service.
L'ajout de la prise en charge de paramètres de connexion supplémentaires à PgAdmin-III, ou une case à cocher dans les options de connexion pour contrôler le paramètre keepalives, devrait être assez trivial. Je me demande si Dave a compris ce que vous demandiez concernant votre offre de financement des travaux.
Mise à jour : le fichier de service est recherché à l'emplacement spécifié dans la PGSYSCONFDIR
variable d'environnement. S'il n'est pas défini, il correspond par défaut à un emplacement spécifique à la plate-forme, qui ne semble pas être correctement documenté pour Windows. Je vais soumettre un patch de documentation. La documentation de.pgpass
montre son chemin comme %APPDATA%\postgresql\pgpass.conf
si, ~/.pg_service.conf
devrait donc être %APPDATA%\postgresql\pg_service.conf
... mais il ne semble pas l'être.
En fait, le chemin correct est:
%APPDATA%\postgresql\.pg_service.conf
Donc:
- Démarrer-> Exécuter
- `% APPDATA%
- créer le répertoire "postgresql" s'il n'existe pas
- créer le fichier ".pg_service.conf" en tant que fichier texte avec le contenu donné ci-dessus (voir la note ci-dessous concernant la dénomination du fichier)
- Dans PgAdmin-III, entrez "localhost" dans le nom d'hôte et le nom du service dans le champ service.
J'ai testé sous Windows et constaté que vous ne pouvez pas laisser le host
champ vide dans PgAdmin-III sous Windows. PgAdmin-III semble remplacer tout hôte spécifié dans le fichier de service par ce qui est spécifié dans la boîte de dialogue de connexion. Vous ne devez donc pas inclure de host
clé dans le fichier de service. (Je vais signaler un bug).
Faire "masquer les extensions de fichier pour les types de fichiers connus" est désactivé dans Windows, donc vous ne l'appelez pas accidentellement à la .pg_service.conf.txt
place. Si vous ne savez pas s'il est nommé à droite ou non, vérifiez la colonne "Type" dans l'Explorateur Windows en mode liste; il lira "Document texte" s'il est mal nommé .pg_service.conf.txt
et CONF File
s'il est correctement nommé .pg_service.conf
. Si vous avez des problèmes pour le renommer, désactivez «masquer les extensions de fichier pour les types de fichiers connus» ou utilisez un éditeur de texte judicieux comme notepad ++ qui vous permettra de créer des fichiers nommés comme vous le souhaitez.
Notez la première période (point) dans le nom de fichier. Oui, c'est différent de pgpass.conf
, et oui, c'est ennuyeux, à la limite d'un bug.