Defino o tempo limite de conexão e comando como 10 minutos no meu aplicativo (lado do cliente).
Em seguida, meu aplicativo executa uma consulta simples: SELECT pg_sleep(65)
Em alguns servidores, ele funciona bem, mas outros fecham a conexão após 60 segundos.
Poderia ser algum tipo de configuração do servidor PostgreSQL que limita o tempo limite e ignora as configurações do meu cliente?
postgresql
timeout
Andrzej Gis
fonte
fonte
SHOW statement_timeout;
Respostas:
Sim é possivel
Há duas configurações mencionadas nos documentos (
idle_in_transaction_session_timeout
é novo na versão 9.6x)statement_timeout
(inteiro)idle_in_transaction_session_timeout
(inteiro)É importante não configurar o
statement_timeout
postgresql.conf a menos que você queira diversão.Aqui está um exemplo disso funcionando
fonte
Não está fora da caixa. Seria muito fácil compilar um servidor personalizado que ignorasse suas configurações.
Mas muito mais provável é que suas conexões estejam sendo cortadas por um firewall ou gateway que não gosta de conexões inativas.
Se você tiver acesso ao arquivo de log do servidor, isso deve dar uma boa pista. Se o cliente disser que o servidor encerrou a conexão inesperadamente e o servidor disser que encerrou a conexão inesperadamente, provavelmente há algo entre o cliente e o servidor que está realmente cortando a conexão.
fonte
Sim, é possível. Existem alguns parâmetros de conexão que você precisa definir.
Consulte o link abaixo. https://jdbc.postgresql.org/documentation/head/connect.html
loginTimeout connectTimeout socketTimeout cancelSignalTimeout
fonte