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
