| Anterior | Siguiente |
| XACT_E_NORESOURCE | XACT_E_NOTRANSACTION |
XACT_E_NOTCURRENT
Qué significa XACT_E_NOTCURRENT
XACT_E_NOTCURRENT corresponde al HRESULT 0x8004D00D. Windows lo describe así: «No se pudo confirmar la transacción debido a un error del control de concurrencia optimista en al menos uno de los administradores de recursos.».
Este resultado delimita el problema en máquina de estados de la transacción y precondiciones del método que devolvió el HRESULT. En particular, al menos un recurso rechazó el commit por control de concurrencia optimista; los datos observados por la transacción dejaron de ser actuales.
Qué comprobar
- Captura UOW, interfaz y método, estado de la transacción antes de la llamada, thread/caller y operación inmediatamente anterior en el intento que devuelve
0x8004D00D. - 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: al menos un recurso rechazó el commit por control de concurrencia optimista; los datos observados por la transacción dejaron de ser actuales.
Tratamiento y recuperación
Reconstruye la transición que llevó al objeto a este estado. Corrige el orden de llamadas o crea una transacción nueva cuando el objeto actual ya no admite la operación; repetir el mismo método sin cambio de estado solo reproduce el fallo.
Diferencias con resultados cercanos
Después del cambio, confirma que coordinator y resource managers coinciden en la misma decisión y que no quedan ramas prepared/in-doubt pendientes de recovery.
Referencias técnicas
¿Buscas un código diferente? Buscar otro código de estado o error.
