¿Qué significa el código HRESULT 0x8004D013 (XACT_E_XTIONEXISTS)?

 
Anterior Siguiente
XACT_E_WRONGUOW XACT_E_NOIMPORTOBJECT

XACT_E_XTIONEXISTS

Qué significa XACT_E_XTIONEXISTS

XACT_E_XTIONEXISTS corresponde al HRESULT 0x8004D013. Windows lo describe así: «Ya existe una inscripción en una transacción.».

La constante describe una condición concreta de inscripción de resource managers y correspondencia entre UOW, enlistment y recurso; aquí ya existe una inscripción transaccional para ese recurso/contexto y crear otra duplicaría el lifecycle.

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 0x8004D013.
  • Localiza el primer participante o coordinador que cambia el estado; los HRESULT posteriores pueden ser solo propagación del outcome ya elegido.
  • Comprueba de forma explícita esta condición: ya existe una inscripción transaccional para ese recurso/contexto y crear otra duplicaría el lifecycle.

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

Si la recuperación exige retry, usa una transacción nueva y verifica idempotencia de cualquier efecto externo; nunca reapliques ciegamente un UOW cuyo outcome era desconocido.

Referencias técnicas


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