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....
  • [or... Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
    • ... Sérgio Luiz Rodrigues Chaves sergio.cha...@elumini.com.br [oracle_br]
      • ... Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
        • ... Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
        • ... Rodrigo Mufalani rodr...@mufalani.com.br [oracle_br]
          • ... Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
    • ... jlchia...@yahoo.com.br [oracle_br]
      • ... Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
        • ... jlchia...@yahoo.com.br [oracle_br]
        • ... angelo angelolis...@gmail.com [oracle_br]
          • ... Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]

Responder a