libpq
, a biblioteca cliente subjacente do PostgreSQL, tem a keepalives
opção de ativar os keepalives do TCP .
Parece que o PgAdmin-III não permite que você especifique parâmetros de conexão arbitrários diretamente, mas há uma solução alternativa.
Ao observar a configuração da conexão no PgAdmin-III, você verá a opção "service". Isso se refere ao arquivo do serviço de conexão . Para usá-lo, crie um ~/.pg_service.conf
conteúdo com como:
[myherokudb]
user=myusername
keepalives=1
connect_timeout=20
keepalives_idle=10
e ao conectar a partir do PgAdmin-III, digite myherokudb
o service
campo.
Isso fará com que o PgAdmin-III use os parâmetros de conexão especificados no arquivo de serviço, incluindo a ativação de keepalives.
(Se você estiver no Windows, o arquivo de serviço pode estar em outro local; consulte a documentação).
Não há variável de ambiente libpq
para controlar as keepalives; portanto, você não pode defini-lo dessa maneira; precisará usar um arquivo de serviço.
Adicionar suporte para parâmetros de conexão adicionais ao PgAdmin-III, ou uma caixa de seleção nas opções de conexão para controlar o parâmetro keepalives, deve ser bastante trivial. Gostaria de saber se Dave entendeu o que você estava pedindo em sua oferta para financiar o trabalho.
Atualização : o arquivo de serviço é procurado no local especificado na PGSYSCONFDIR
variável de ambiente. Se não estiver definido, o padrão será um local específico da plataforma, que não parece estar documentado corretamente para o Windows. Vou enviar um patch de documentação. A documentação para.pgpass
mostra seu caminho como %APPDATA%\postgresql\pgpass.conf
se, então ~/.pg_service.conf
deveria ser %APPDATA%\postgresql\pg_service.conf
... mas não parece ser.
De fato, o caminho correto é:
%APPDATA%\postgresql\.pg_service.conf
Então:
- Iniciar-> Executar
- `% APPDATA%
- crie o diretório "postgresql" se ele não existir
- crie o arquivo ".pg_service.conf" como um arquivo de texto com o conteúdo fornecido acima (veja a nota abaixo sobre a nomeação de arquivos)
- No PgAdmin-III, digite "localhost" no nome do host e o nome do serviço no campo de serviço.
Testei no Windows e descobri que você não pode deixar o host
campo no PgAdmin-III em branco no Windows. O PgAdmin-III parece substituir qualquer host especificado no arquivo de serviço pelo especificado na caixa de diálogo de conexão. Portanto, você não deve incluir uma host
chave no arquivo de serviço. (Vou relatar um bug).
A opção "ocultar extensões de arquivo para tipos de arquivos conhecidos" está desativada no Windows, para que você não a chame acidentalmente .pg_service.conf.txt
. Se não tiver certeza se o nome está correto ou não, verifique a coluna "Tipo" no Windows Explorer na exibição de lista; ele lerá "Documento de texto" se for nomeado incorretamente .pg_service.conf.txt
e CONF File
se for nomeado corretamente .pg_service.conf
. Se você tiver problemas para renomeá-lo, desative "ocultar extensões de arquivo para tipos de arquivos conhecidos" ou use um editor de texto sensato, como o bloco de notas ++, que permitirá criar arquivos com o nome que desejar.
Observe o ponto inicial (ponto) no nome do arquivo. Sim, isso é diferente e pgpass.conf
, sim, é irritante, na fronteira com um bug.