Site icon EfmSoft

¿Qué significa el código HRESULT 0x8004D00D (XACT_E_NOTCURRENT)?

 
Anterior Siguiente
XACT_E_NORESOURCE XACT_E_NOTRANSACTION

XACT_E_NOTCURRENT

Qué significa XACT_E_NOTCURRENT

XACT_E_NOTCURRENT corresponde al HRESULT 0x8004D00D. Windows lo describe así: «No se pudo confirmar la transacción debido a un error del control de concurrencia optimista en al menos uno de los administradores de recursos.».

Este resultado delimita el problema en máquina de estados de la transacción y precondiciones del método que devolvió el HRESULT. En particular, al menos un recurso rechazó el commit por control de concurrencia optimista; los datos observados por la transacción dejaron de ser actuales.

Qué comprobar

  • Captura UOW, interfaz y método, estado de la transacción antes de la llamada, thread/caller y operación inmediatamente anterior en el intento que devuelve 0x8004D00D.
  • Ordena la traza por UOW y tiempo y separa el primer cambio de estado de los errores secundarios generados al cerrar o recuperar la transacción.
  • Comprueba de forma explícita esta condición: al menos un recurso rechazó el commit por control de concurrencia optimista; los datos observados por la transacción dejaron de ser actuales.

Tratamiento y recuperación

Reconstruye la transición que llevó al objeto a este estado. Corrige el orden de llamadas o crea una transacción nueva cuando el objeto actual ya no admite la operación; repetir el mismo método sin cambio de estado solo reproduce el fallo.

Diferencias con resultados cercanos

Después del cambio, confirma que coordinator y resource managers coinciden en la misma decisión y que no quedan ramas prepared/in-doubt pendientes de recovery.

Referencias técnicas


¿Buscas un código diferente? Buscar otro código de estado o error.

Exit mobile version