| Anterior | Siguiente |
| XACT_E_HEURISTICDAMAGE | XACT_E_ISOLATIONLEVEL |
XACT_E_HEURISTICDANGER
Qué significa XACT_E_HEURISTICDANGER
XACT_E_HEURISTICDANGER corresponde al HRESULT 0x8004D007. Windows lo describe así: «Es posible que algunos estados del recurso se hayan confirmado y otros se hayan anulado, probablemente debido a decisiones heurísticas.».
El HRESULT identifica una etapa precisa de resolución distribuida del resultado y posibles decisiones heurísticas. En esta llamada, existe riesgo de outcomes incompatibles, pero la evidencia disponible aún no demuestra exactamente qué ramas divergieron.
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
0x8004D007. - Correlaciona eventos de aplicación, MSDTC y resource manager con la misma UOW para no mezclar transacciones concurrentes del mismo proceso.
- Comprueba de forma explícita esta condición: existe riesgo de outcomes incompatibles, pero la evidencia disponible aún no demuestra exactamente qué ramas divergieron.
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
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.