ORA-02049: Timeout: distributed transaction waiting for lock
OracleO que significa?
Uma transação distribuída excedeu DISTRIBUTED_LOCK_TIMEOUT enquanto aguardava um lock no banco de dados remoto. A transação expirou.
Por que acontece?
Uma transação executada por um database link aguarda uma linha bloqueada no lado remoto; transações longas na sessão remota, latência de rede, ou locks conflitantes mantidos nas duas pontas.
Como resolver
Encontre e resolva o lock e a sessão bloqueadora no banco de dados remoto (v$lock, v$session). Mantenha as transações distribuídas curtas e adquira os locks necessários o mais tarde possível. Se necessário, aumente DISTRIBUTED_LOCK_TIMEOUT para a carga de trabalho (SPFILE, requer reinicialização). Para transações distribuídas in-doubt, examine a view DBA_2PC_PENDING e resolva-as manualmente se necessário.
Mais entradas deste banco
- ORA-28000The account is locked
- ORA-01578Oracle data block corrupted (file #, block #)
- ORA-01722Invalid number
- enq: TX - row lock contentionEspera: sessão bloqueada em um lock de linha mantido por outra transação
- log file syncEspera: sessão aguardando o LGWR gravar o redo em disco no commit
- db file sequential readEspera: leitura física de bloco único, tipicamente um acesso por índice ou tabela
- db file scattered readEspera: leitura física multibloco, tipicamente um full table scan ou index fast full scan