DBAtlas · Atlas de operações de banco de dados

ORA-02049: Timeout: distributed transaction waiting for lock

Oracle

O 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.

Abrir no DBAtlas →

Mais entradas deste banco