Site icon EfmSoft

¿Qué significa el código HRESULT 0x8004D00E (XACT_E_NOTRANSACTION)?

 
Anterior Siguiente
XACT_E_NOTCURRENT XACT_E_NOTSUPPORTED

XACT_E_NOTRANSACTION

Qué significa XACT_E_NOTRANSACTION

XACT_E_NOTRANSACTION corresponde al HRESULT 0x8004D00E. Windows lo describe así: «La transacción ya se confirmó o anuló implícita o explícitamente.».

No debe reducirse a una “falla de MSDTC” genérica: pertenece a resultado final y transición de estado de una transacción coordinada. La pista decisiva es que la condición documentada es «La transacción ya se confirmó o anuló implícita o explícitamente.» y debe relacionarse con el estado exacto del UOW que produjo la llamada.

Qué comprobar

  • Captura UOW/transaction ID, método que devuelve el código, estado anterior, voto de cada participante, timeout y primer error previo en el intento que devuelve 0x8004D00E.
  • 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: la condición documentada es «La transacción ya se confirmó o anuló implícita o explícitamente.» y debe relacionarse con el estado exacto del UOW que produjo la llamada.

Tratamiento y recuperación

No repitas commit o abort sobre el mismo objeto a ciegas. Determina primero el resultado ya decidido; si la operación de negocio debe repetirse, inicia una transacción nueva y comprueba antes los efectos externos que MSDTC no puede revertir.

Diferencias con resultados cercanos

La prueba final debe demostrar tanto el resultado de negocio como el outcome de cada recurso enlistado. Un commit local aislado no prueba atomicidad distribuida.

Referencias técnicas


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

Exit mobile version