Site icon EfmSoft

¿Qué significa el código HRESULT 0x8004D012 (XACT_E_WRONGUOW)?

 
Anterior Siguiente
XACT_E_WRONGSTATE XACT_E_XTIONEXISTS

XACT_E_WRONGUOW

Qué significa XACT_E_WRONGUOW

XACT_E_WRONGUOW corresponde al HRESULT 0x8004D012. Windows lo describe así: «La unidad de trabajo indicada no coincide con la esperada por el administrador de recursos.».

El HRESULT identifica una etapa precisa de inscripción de resource managers y correspondencia entre UOW, enlistment y recurso. En esta llamada, el resource manager recibió una unidad de trabajo distinta de la que esperaba para esa inscripción.

Qué comprobar

  • Captura UOW, RMID, identificador de enlistment, resource manager, flags de single-phase y la llamada exacta de enlist/re-enlist en el intento que devuelve 0x8004D012.
  • Verifica la precondición inmediatamente anterior a la llamada: enlistment, prepare, commit, abort, re-enlist o recovery requieren estados distintos.
  • Comprueba de forma explícita esta condición: el resource manager recibió una unidad de trabajo distinta de la que esperaba para esa inscripción.

Tratamiento y recuperación

Corrige la relación entre la transacción y el resource manager que participa en ella. Reutiliza solo el enlistment y el UOW que pertenecen a esa generación; al reintentar, crea una inscripción nueva si la anterior ya quedó resuelta o invalidada.

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.

Exit mobile version