| Anterior | Siguiente |
| XACT_S_READONLY | XACT_S_OKINFORM |
XACT_S_SOMENORETAIN
Qué significa XACT_S_SOMENORETAIN
XACT_S_SOMENORETAIN corresponde al HRESULT 0x0004D003. Windows lo describe así: «La transacción se anuló correctamente. Sin embargo, al ser una transacción coordinada, algunos recursos inscritos se anularon de forma definitiva porque no admitían la semántica de anulación con retención.».
La constante describe una condición concreta de opciones de la transacción: aislamiento, retención, asincronía y límites soportados; aquí el abort tuvo éxito, pero algunos recursos coordinados no pudieron conservar el estado para retaining semantics.
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
0x0004D003. - 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: el abort tuvo éxito, pero algunos recursos coordinados no pudieron conservar el estado para retaining semantics.
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.