ORA-00054: resource busy and acquire with NOWAIT s

#108425

Seguinte : essa mensagem acontece quando um programa que está conectado no banco de dados quer fazer uma alteração (normalmente algum tipo de DDL) numa tabela ou índice que no momento está em uso por outro programa, e é INESCAPÁVEL no sentido que se alguém tá usando um recurso de maneira exclusiva não tem como outro alguém usar ao mesmo tempo….

O procedimento CORRETO e LIMPO é a danada da aplicação *** PERGUNTAR ** para o banco se o objeto que ela quer alterar tá em uso por outros ou não, yep ?? Isso é o CERTO, se vc está vendo msgs do tipo tá Líquido e PROVADO EM DEFINITIVO que a porquinha da aplicação NÂO ESTÁ FAZENDO isso….

Na ausência da situação recomendada e correta, o que vc pode fazer enquanto a Aplicação Não é Consertada seria :

=> identificados os dois programas/telas/procedimentos que estão concorrendo entre si/querendo Alterar/mexer no mesmo objeto ao mesmo tempo, re-agendar um deles para ser executado numa outra hora

=> de momento, enquanto a alteração de schedule não ocorre, se depois de esperar um pouco e tentar re-executar e ainda assim a msg ocorre, sim, vc deve ou matar a sessão ou (se conseguir identificar o usuário que causou o bloqueio) demandar que esse usuário saia da aplicação/programa que está usando o objeto em disputa…

[]s

Chiappa

OBS : se vc precisar de um script/consulta pra identificar as sessões/programas/módulos envolvidos, vc pode usar um tipo este :

select a.sid, a.serial#, a.username, a.machine, a.module, a.terminal, c.owner, c.object_type, c.object_name
from v$session a, v$locked_object b, dba_objects c
where b.object_id = c.object_id
and a.sid = b.session_id;

plugins premium WordPress