| Anterior | Siguiente |
| XACT_E_NOTIMEOUT | XACT_E_ABORTED |
XACT_E_ALREADYINPROGRESS
Qué significa XACT_E_ALREADYINPROGRESS
XACT_E_ALREADYINPROGRESS corresponde al HRESULT 0x8004D018. Windows lo describe así: «La operación solicitada ya está en curso para la transacción.».
La frontera técnica relevante es opciones de la transacción: aislamiento, retención, asincronía y límites soportados. La condición que distingue este valor de otros XACT es que la misma operación ya está en curso; lanzar una segunda no crea una segunda fase válida.
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
0x8004D018. - 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 misma operación ya está en curso; lanzar una segunda no crea una segunda fase válida.
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
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.