¿Qué significa el código HRESULT 0x8004D016 (XACT_E_INDOUBT)?

 
Anterior Siguiente
XACT_E_INVALIDCOOKIE XACT_E_NOTIMEOUT

XACT_E_INDOUBT

Qué significa XACT_E_INDOUBT

XACT_E_INDOUBT corresponde al HRESULT 0x8004D016. Windows lo describe así: «El estado de la transacción es dudoso. Se produjo un error de comunicación o falló un administrador de transacciones o de recursos.».

La constante describe una condición concreta de resolución distribuida del resultado y posibles decisiones heurísticas; aquí el outcome todavía no puede determinarse con seguridad; perder comunicación no equivale ni a commit ni a abort.

Qué comprobar

  • Captura UOW, lista completa de participantes, outcome conocido por cada rama, estado del coordinador, hora de la última confirmación y cualquier decisión heurística en el intento que devuelve 0x8004D016.
  • 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: el outcome todavía no puede determinarse con seguridad; perder comunicación no equivale ni a commit ni a abort.

Tratamiento y recuperación

No conviertas este estado en un retry genérico. Conserva los logs y determina el outcome de cada participante. Si hay resultados contradictorios duraderos, la reparación es de conciliación/compensación de negocio, no un nuevo commit del mismo UOW.

Diferencias con resultados cercanos

Valida la corrección con una UOW nueva cuando el outcome anterior ya era terminal; el éxito de una llamada posterior sobre otro objeto no cambia el resultado histórico de la transacción fallida.

Referencias técnicas


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