Seguem obs : "Chiappa, no ponto 1 eu concordo com tudo que voce disse. Isso eh um workaround vulgo gambiarra para poder sanar o problema do cliente enquanto nao se descobri a causa raiz, um chamado com a Oracle ja foi aberto para suporte."
ok : apenas não esqueça que como eu falei NÂO NECESSARIAMENTE é a Oracle que vai solucionar - como eu disse, NADA IMPEDE por exemplo de ser um prob na rede digamos, que causa perda de comunicação com o banco, OU bug/falha no middleware (ODBC é useiro e vezeiro em coisas do tipo), pode ser app porquinha que abre a conexão e não a encerra no final do trabalho.... Blz ??? E nem preciso dizer, vc vai implementar o work-around de sair matando as sessões MAS NÂO PODE deixar de perseguir até encontrar a causa raiz e a consertar, senão vc fica eternamente "correndo atrás do rabo", "enxugando gelo", como se diz... E não deixe de Analisar/testar/validar a possibilidade de implementar DCD+profile com timeout, para que a eventual sessão deixada aberto sem uso seja removida pelo próprio RDBMS... "Em relacao ao item 2 a minha consulta funciona sim, esse pid eh o mesmo pid do SO, tanto que ela existe na v$process, e nao na v$session. Tanto que funcionou!" Repito : o caso Não É ausência de dados na V$PROCESS e sim a coluna ADDR na V$SESSION que como Documentado na nota metalink que indiquei Em Alguns Casos de sessão killed fica nula, Não permitindo Portanto o JOIN de V$SESSION com V$PROCESS por essa coluna, como vc indicou.... SE no seu caso isso não ocorreu ótimo, vc pode usar o mesmo JOIN que indicou sem probs, não precisa usar o work-around indicado na nota metalink.... A query do script sqlplus (se vc for Adotar a minha Recomendação de gerar o shell script pelo sqlplus, que repito imho é muito mais simples/fácil de se usar) portanto ficaria tipo : set term off feedback off verify off pages 0 lines 500 trimspool on head off spool /tmp/kill_sessions.sh SELECT 'kill -9 ' || p.spid FROM v$session s, v$process p WHERE s.paddr = p.addr AND s.username IS NOT NULL AND s.status = 'KILLED' / select 'exit' || chr(10) from dual / spool off exit okdoc ?? "Essa questao do alter system disconnect session eu vou testar tambem, obrigado pela dica. " Blz, como eu disse a minha Recomendação é sempre pelo DISCONNECT, na minha experiência ele é mais efetivo do que KILL SESSION.... Mas testa aí direitinho, num cenário onde vc tem sessão que fica "eternamente" em KILLED talvez nem mesmo o DISCONNECT IMMEDIATE seja tão efetivo, aí talvez vc tenha mesmo que apelar pro KILL -9 do processo diretamente... []s Chiappa OBS : o ponto MAIS CRÍTICO do assunto eu REPITO aqui, para ficar Bem Claro : vc só deve usar alguma opção de matar a sessão (seja via KILL, seja via DISCONNECT IMMEDIATE, seja via KILL -9 direto) SE, e APENAS SE, as suas sessões são DEDICATED e SE vc não tem nenhum tipo de POOL DE CONEXÃO ativo, ou MTS/Shared Sessions no database... Matar uma sessão que está sendo compartilhada com outras via POOL DE CONEXÃO ou via MTS/Shared Server pode ser DESASTROSO, pois vc pode acabar matando outras conexões que compartilham essa tal sessão....