| Anterior | Siguiente |
| XACT_E_INDOUBT | XACT_E_ALREADYINPROGRESS |
XACT_E_NOTIMEOUT
Qué significa XACT_E_NOTIMEOUT
XACT_E_NOTIMEOUT corresponde al HRESULT 0x8004D017. Windows lo describe así: «Se especificó un tiempo de espera, pero no se admiten tiempos de espera.».
No debe reducirse a una “falla de MSDTC” genérica: pertenece a opciones de la transacción: aislamiento, retención, asincronía y límites soportados. La pista decisiva es que se pasó un timeout a una implementación que no admite ese control temporal.
Qué comprobar
- Captura nivel de aislamiento, isoFlags, retaining flags, timeout, modo síncrono/asíncrono y capacidades anunciadas por el transaction manager en el intento que devuelve
0x8004D017. - 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: se pasó un timeout a una implementación que no admite ese control temporal.
Tratamiento y recuperación
Ajusta la llamada a las capacidades reales del transaction manager y del recurso. No ocultes un flag no soportado sustituyéndolo silenciosamente: registra la semántica elegida y valida que aislamiento, timeout y retaining cumplen el contrato de la aplicación.
Diferencias con resultados cercanos
Repite el escenario con correlación completa y confirma que la transición que originaba el código ya no aparece; no basta con que el caller deje de mostrar el HRESULT.
Referencias técnicas
¿Buscas un código diferente? Buscar otro código de estado o error.
