Em 20 de novembro de 2014 13:58, Rosana de Oliveira <[email protected]>
escreveu:

>
> Prezados,  boa tarde!
>

Boa tarde!


>
> Temos uma aplicação com o banco de dados rodando no Postgresql 9.2.9 que
> gera constantemente várias consultas com state = 'idle' na view
> pg_stat_activity.
>

Na verdade são sessões/conexões, não consultas.
O idle significa o estado dessa conexão, não uma consulta, especificamente.
Isto significa que sua aplicação abre uma conexão ao ser executada e não
fecha mais. Utiliza sempre a mesma, como a maioria das aplicações desktop.


> Estou matando os processos inúteis explicitamente com o comando
> pg_terminate_backend(pid).
>

Ao encerrar esta conexão, você está automaticamente "encerrando" a
aplicação também, pois a mesma perde a conexão com o banco de dados.
Caso este não seja o funcionamento previsto, talvez você precise readequar
o modo como sua aplicação se conecta ao banco e realizar tratamentos para
evitar este tipo de comportamento.


>
> Posso também configurar na crontab um script para isto.
>
> Todavia, meus colegas de S.O. estão me indagando porque o Postgresql não
> controla isto no banco?
>

Porque seria a mesma coisa que fechar os teus sistemas sem aviso prévio. O
banco de dados, independente se for Postgres ou não, não deve eliminar
estas conexões sozinho, a não ser que elas já não tenham mais vínculo com a
aplicação. Para este caso, existem parâmetros de controle "tcp_keepalive_*".

(Me corrijam se estiver enganado, pois não costumo reconfigurar estes
parâmetros ou esperar o sua funcionalidade)

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

Responder a