Colega,
O que você pretende implementar é o DCD (Dead Connection Detection) 
existe muita documentação sobre isso (ver NOTE:151972.1). Resumidamente, 
isso pode ser implementado na pilha PROTOCOL do SQL*Net apenas colocando 
o comando SQLNET.EXPIRE_TIME=3 (para checar a cada 3 minutos por 
exemplo). Quando trabalhei com a plataforma Windows eu vi que o DCD 
implementado diretamente pelo pilha TCP/IP do SO (KeepAlive) era mais 
eficiente, e para isso você terá que editar o registro do Windows em:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
   Editar ou adicionar a chave: KeepAliveTime (REG_DWORD)
       Decimal -> 180000 (para exemplo de 3 minutos)

Em Linux também tem como implementar o KeepAlive do TCP/IP do SO, eu 
acho que não é necessário, mas se quiser fazer,  você terá que editar o 
arquivo /etc/sysctl.conf e colocar:

#KeepAliveTime
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 6

Boa sorte,

Carlos Alfredo M. de Menezes
Analista de Suporte Sr.
S/A Usina Coruripe Açúcar e Álcool
+55(82)3217-2121



Igor Laguardia escreveu:
>
> Willian,
>
> Na verdade eu não quero derrubar os clientes inativos, eu quero derrubar
> conexões que o usuário já fechou o client e a conexão continua ativa.
>
> 2008/6/11 Willian Frasson <[EMAIL PROTECTED] 
> <mailto:wfrasson%40yahoo.com.br>>:
>
> > Já tentou criar um novo profile para esses usuarios... com um timeout?
> > alter user <user> profile <profile>alter profile <profile> limit 
> idle_time
> > 5;No caso ae está com 5 minutos de inatividadeAbçs.----- Original 
> Message
> > ----- From: Igor Laguardia
> > To: oracle_br@yahoogrupos.com.br 
> <mailto:oracle_br%40yahoogrupos.com.br> <oracle_br%40yahoogrupos.com.br> ;
> > oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> 
> <oracle_br%40yahoogrupos.com.br>
> > Sent: Wednesday, June 11, 2008 2:43 PM
> > Subject: [oracle_br] Keepalive de sessão
> >
> >
> > Prezados,
> >
> > Estou com uma situação no meu banco que é a seguinte:
> >
> > Tenho aplicações que são executas, e por algum motivo quando o usuário
> > fecha
> > a conexão de forma abrupta(fechar pelo taskmanager, por exemplo) o 
> sistema
> > para de executar mas no banco a conexão continua ativa.
> >
> > O que desejo fazer é um keepalive das sessões, ou seja, o Banco de dados
> > verificaria de forma rotineira se todos os clientes ligados à ele estão
> > respondendo a solicitações, o que não tiver, ele eliminaria a sessão.
> >
> > Existe alguma feature desta no Oracle?
> >
> > --
> > [ ]'s
> > Igor Laguardia
> > ---------------------
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> > __________ Informação do NOD32 IMON 3177 (20080611) __________
> >
> > Esta mensagem foi verificada pelo NOD32 sistema antivírus
> > http://www.eset.com.br <http://www.eset.com.br>
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> -- 
> [ ]'s
> Igor Laguardia
> ---------------------
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  

Responder a