Devemos notar que se uma query é enviada para o servidor e a conexão é
perdida (cliente tirado da tomada) a query continuará e o servidor não
ficará sabendo da desconexão.
Outros DBAs inconformados com isso, reclamaram na lista psql-geral e
até sugeriram que o postgres verificasse a conexão de tempos em
tempos, claro, essa opção foi descartada pois é ineficiente.
Deveria existir uma maneira de fazer isso sem precisar usar ou desviar
mais recursos. Por problemas no protocolo de rede, isso não existe. Só
é possível saber quando o postgres faz um hit na rede, ou seja, quando
vai devolver o resultado da query.

Se sua aplicação mantém a conexão por muito tempo em idle (pessoal
tomando cafezinho) é possível baixar o keepalive_idle e no caso de
duas premissas ocorrerem, a conexão será liberada.
1ª premissa: A conexão está idle?
2ª premissa: O cliente não respondeu nenhuma das checagens de conexão?
Se estas duas premissas forem verdadeiras, a conexão pode ser desfeita.
Se a conexão estiver apenas idle, ela continuará.

Por isto é seguro baixar o keepalive_idle, pois se sua aplicação fica
muito tempo em idle, mas a conexão ainda existe, a aplicação não será
desconectada.


-- 
Tarcisio F. Sassara
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a