Site icon EfmSoft

¿Qué significa el código HRESULT 0x8004D00B (XACT_E_NOISORETAIN)?

 
Anterior Siguiente
XACT_E_NOENLIST XACT_E_NORESOURCE

XACT_E_NOISORETAIN

Qué significa XACT_E_NOISORETAIN

XACT_E_NOISORETAIN corresponde al HRESULT 0x8004D00B. Windows lo describe así: «Esta implementación de transacciones no admite la semántica solicitada de retención del aislamiento entre límites de confirmación y anulación con retención, o isoFlags no era cero.».

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 la combinación de aislamiento y retaining semantics solicitada no puede mantenerse entre límites transaccionales.

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 0x8004D00B.
  • Localiza el primer participante o coordinador que cambia el estado; los HRESULT posteriores pueden ser solo propagación del outcome ya elegido.
  • Comprueba de forma explícita esta condición: la combinación de aislamiento y retaining semantics solicitada no puede mantenerse entre límites transaccionales.

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

Valida la corrección con una UOW nueva cuando el outcome anterior ya era terminal; el éxito de una llamada posterior sobre otro objeto no cambia el resultado histórico de la transacción fallida.

Referencias técnicas


¿Buscas un código diferente? Buscar otro código de estado o error.

Exit mobile version