Se você tem uma sessão de banco a qual teve de ser assassinada, mas continua agonizando por um longo período, acabe com ela executando o procedimento a seguir.
a) Na plataforma Unix:
SQL> SELECT spid
FROM v$process
WHERE NOT EXISTS ( SELECT 1
FROM v$session
WHERE paddr = addr);
$ kill
b) Na plataforma Windows:
SQL> SELECT spid, osuser, s.program
FROM v$process p, v$session s
WHERE p.addr=s.paddr;
Mate o processo executando no prompt DOS o comando abaixo.
c:\> orakill
A razão pela qual uma sessão continue agonizando e porque ela está aguardando uma resposta do cliente SQLNet. Quando isto acontece o servidor informa que sua sessão foi assassinada e encerra a sessão. O processo pode manter-se ativo até que o cliente encerre o aplicativo.
O PMON pode apropriar-se da sessão enquanto realiza tarefas encerramento da sessão recém assassinada. Se essas tarefas não puderem ser executadas imediatamente, ele manterá a sessão sob um falso processo, enquanto executa outras tarefas.
Encontrando o spid, você pode efetivar a morte do processo. Antes de encerrar um processo, certifique-se de que esse seja um processo dedicado, aqueles denominados "oracle