¿Qué significa el código HRESULT 0x8004D00A (XACT_E_NOENLIST)?

 
Anterior Siguiente
XACT_E_NOASYNC XACT_E_NOISORETAIN

XACT_E_NOENLIST

Qué significa XACT_E_NOENLIST

XACT_E_NOENLIST corresponde al HRESULT 0x8004D00A. Windows lo describe así: «No se puede inscribir el recurso en la transacción.».

La constante describe una condición concreta de inscripción de resource managers y correspondencia entre UOW, enlistment y recurso; aquí el recurso no puede incorporarse a esta transacción con el estado y contrato actuales.

Qué comprobar

  • Captura UOW, RMID, identificador de enlistment, resource manager, flags de single-phase y la llamada exacta de enlist/re-enlist en el intento que devuelve 0x8004D00A.
  • Verifica la precondición inmediatamente anterior a la llamada: enlistment, prepare, commit, abort, re-enlist o recovery requieren estados distintos.
  • Comprueba de forma explícita esta condición: el recurso no puede incorporarse a esta transacción con el estado y contrato actuales.

Tratamiento y recuperación

Corrige la relación entre la transacción y el resource manager que participa en ella. Reutiliza solo el enlistment y el UOW que pertenecen a esa generación; al reintentar, crea una inscripción nueva si la anterior ya quedó resuelta o invalidada.

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.