libpq, la bibliothèque cliente PostgreSQL sous-jacente, a la keepalivespossibilité 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.confavec un contenu comme:
[myherokudb]
user=myusername
keepalives=1
connect_timeout=20
keepalives_idle=10
et lors de la connexion à partir de PgAdmin-III, entrez myherokudbdans le servicechamp.
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 libpqpour 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 PGSYSCONFDIRvariable 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.confsi, ~/.pg_service.confdevrait 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 hostchamp 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 hostclé 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.txtplace. 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.txtet CONF Files'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.