Site icon EfmSoft

¿Qué significa el código HRESULT 0x0004D001 (XACT_S_DEFECT)?

 
Anterior Siguiente
XACT_S_ASYNC XACT_S_READONLY

XACT_S_DEFECT

Qué significa XACT_S_DEFECT

XACT_S_DEFECT corresponde al HRESULT 0x0004D001. Windows lo describe así: «Se detectó un defecto en la transacción.».

Para diagnosticarla conviene pensar en notificaciones y resultados informativos del protocolo de coordinación, no solo en el método que terminó devolviendo el código. En este caso, el receptor detectó un defecto y lo comunica como condición de protocolo que debe conservarse en la decisión posterior.

Qué comprobar

  • Captura UOW, callback/event sink, fase de prepare/commit/abort, cambios comunicados por cada receptor y estado antes/después de la notificación en el intento que devuelve 0x0004D001.
  • 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: el receptor detectó un defecto y lo comunica como condición de protocolo que debe conservarse en la decisión posterior.

Tratamiento y recuperación

Trata el valor como información de protocolo, no como S_OK genérico. El caller debe conservar la fase y los cambios comunicados por el receptor y decidir el siguiente paso exactamente según esa notificación.

Diferencias con resultados cercanos

Si la recuperación exige retry, usa una transacción nueva y verifica idempotencia de cualquier efecto externo; nunca reapliques ciegamente un UOW cuyo outcome era desconocido.

Referencias técnicas


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

Exit mobile version