| Anterior | Siguiente |
| CONTEXT_E_NOCONTEXT | CONTEXT_E_SYNCH_TIMEOUT |
CONTEXT_E_WOULD_DEADLOCK
Qué significa CONTEXT_E_WOULD_DEADLOCK
CONTEXT_E_WOULD_DEADLOCK corresponde al HRESULT 0x8004E005. Windows indica: «El componente está configurado para usar sincronización y esta llamada al método provocaría un interbloqueo.».
La frontera técnica es sincronización de actividades COM+ y prevención de esperas circulares. Para este código, COM+ detecta que la cadena de sincronización formaría un deadlock; captura ambos lados de la espera y sus atributos de sincronización. La investigación debe correlacionar activity/context ID, hilo llamador y propietario, límite de sincronización, cadena de llamadas, timeout y recurso por el que espera cada lado.
Qué comprobar
- Registra activity/context ID, hilo llamador y propietario, límite de sincronización, cadena de llamadas, timeout y recurso por el que espera cada lado; después identifica la colección, proceso o contexto exacto que estaba activo cuando apareció el código.
- Valida la condición «El componente está configurado para usar sincronización y esta llamada al método provocaría un interbloqueo.» sobre el mismo catálogo o contexto; una prueba en otra partición puede dar un resultado engañoso.
Tratamiento recomendado
Reconstruye la cadena de espera y los límites de sincronización. Elimina la llamada circular/reentrante o ajusta el contrato del componente; ampliar el timeout solo retrasa un deadlock real.
Cómo distinguirlo de resultados cercanos
CONTEXT_E_NOCONTEXTdescribe una condición distinta: «No hay ningún contexto de objeto MTS.».CONTEXT_E_SYNCH_TIMEOUTno es equivalente; su descripción es «El componente está configurado para usar sincronización y un subproceso agotó el tiempo de espera mientras esperaba entrar en el contexto.».
Referencias técnicas
¿Buscas un código diferente? Buscar otro código de estado o error.