DBAtlas · Atlas de operaciones de bases de datos

ORA-02049: Timeout: distributed transaction waiting for lock (timeout de bloqueo en transacción distribuida)

Oracle

¿Qué significa?

Una transacción distribuida superó DISTRIBUTED_LOCK_TIMEOUT mientras esperaba un bloqueo en la base de datos remota. La transacción agotó el tiempo de espera.

¿Por qué ocurre?

Una transacción que se ejecuta a través de un database link espera una fila bloqueada en el lado remoto; transacciones largas en la sesión remota, latencia de red o bloqueos en conflicto mantenidos en ambos extremos.

Cómo solucionarlo

Encuentre y resuelva el bloqueo y la sesión bloqueante en la base de datos remota (v$lock, v$session). Mantenga las transacciones distribuidas cortas y adquiera los bloqueos necesarios lo más tarde posible. Si es necesario, aumente DISTRIBUTED_LOCK_TIMEOUT según la carga de trabajo (SPFILE, requiere reinicio). Para transacciones distribuidas in-doubt, examine la vista DBA_2PC_PENDING y resuélvalas manualmente si es necesario.

Abrir en DBAtlas →

Más entradas de este motor