¿Qué significa el código HRESULT 0x8004E002 (CONTEXT_E_ABORTED)?

 
Anterior Siguiente
SL_REMAPPING_SP_STATUS_DEBUGGER_DETECTED CONTEXT_E_ABORTING

CONTEXT_E_ABORTED

Qué significa CONTEXT_E_ABORTED

CONTEXT_E_ABORTED corresponde al HRESULT 0x8004E002. Windows indica: «La transacción raíz intentó confirmarse, pero la transacción se anuló.».

La operación fallida se sitúa en estado y lifecycle de transacciones dentro del contexto COM+. El significado práctico es: El commit final observa una transacción que ya fue anulada; el diagnóstico debe retroceder hasta el primer voto o resource manager que produjo ese estado. Captura antes de reparar ID de transacción, contexto del objeto, voto del componente, estado commit/abort, resource manager y estado de MSDTC/transaction manager.

Qué comprobar

  • Obtén ID de transacción, contexto del objeto, voto del componente, estado commit/abort, resource manager y estado de MSDTC/transaction manager en la misma llamada que devuelve el HRESULT y no reinicies COM+ antes de guardar esa evidencia.
  • Correlaciona el código con la llamada que lo genera, no solo con el mensaje final mostrado por la herramienta de administración.
  • Confirma que «La transacción raíz intentó confirmarse, pero la transacción se anuló.» se mantiene al repetir solo la operación mínima; después cambia una única precondición por prueba.

Tratamiento recomendado

Encuentra la primera transición que cambió el estado de la transacción: voto, abort, fallo del administrador de recursos o indisponibilidad de TM. Un commit o reintento posterior no puede reactivar una transacción que ya quedó anulada.

Cómo distinguirlo de resultados cercanos

  • CONTEXT_E_NOTRANSACTION describe una condición distinta: «La operación solicitada requiere que el contexto actual tenga una transacción, pero no la tiene.».
  • CONTEXT_E_TMNOTAVAILABLE no es equivalente; su descripción es «COM+ no pudo comunicarse con el Coordinador de transacciones distribuidas de Microsoft.».

Cierra el diagnóstico repitiendo la acción desde un estado conocido y comprobando que «La transacción raíz intentó confirmarse, pero la transacción se anuló.» deja de ser cierto; cualquier código distinto merece su propio análisis.

Referencias técnicas


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