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