2012/9/19 Fabrízio de Royes Mello <[email protected]>

>
> Em 19 de setembro de 2012 13:19, Euler Taveira <[email protected]>escreveu:
>
>
>> Talvez o que o OP está querendo é algo como a função
>> pg_terminate_backend().
>> Aconselho que ao invés de ficar utilizando esse artifício, ele corrija a
>> aplicação para não deixar aberta essas conexões ociosas pois elas são
>> prejudiciais ao PostgreSQL em algumas situações.
>>
>>
> Com certeza corrigir a aplicação elimina o *mal pela raiz*, porém qdo o
> software é de terceiros isso é um pouco mais complicado e dai precisamos
> dos artifícios para *ajudar de certa forma*... no meu entendimento é pior
> deixar essas conexões ociosas...
>
>
Concordo, esse tipo de ação é SEMPRE ruim, mas muitas vezes é melhor que
deixar uma aplicação mal feita "f###" com o servidor.

Além disso, é fácil matar conexões em IDLE a mais de 5 min, por exemplo,
apenas com uma query (que pode ser adicionada num cronjob):

SELECT pg_terminate_backend(procpid) FROM pg_stat_activity
WHERE current_query = '<IDLE>' AND age(now(), query_start) > '5
min'::interval

Ainda pode retornar outras colunas (como datname, useid, application_name,
etc.) pra gravar num log ou coisa do tipo. Também aconselho um filtro mais
preciso, pra matar apenas aquelas que já causam problemas.


Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados PostgreSQL
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a