Al activar cambios en la consola de Oracle WebLogic —típicamente un despliegue sobre un clúster— la operación puede quedarse esperando y terminar en BEA-240003 con un timeout: los servidores destino reportan STATE_DISTRIBUTED, pero la activación nunca se da por completada. En la mayoría de los casos la causa no está dentro de WebLogic.
Escenarios validados:
- Oracle WebLogic Server 11.1x o superior.
- JDK 1.7x o superior.
- Aplica a cualquier plataforma.
El error
BEA-240003 · Operation Time Out
####<Oct 15, 2018 10:55:55,517 AM EDT> <Error> <Console> <apps.rinnovocorp.com> <AdminServer>
<[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic>
<BEA-240003> <Administration Console encountered the following error:
java.lang.RuntimeException: Timed out waiting for completion:
Activate State: STATE_DISTRIBUTING
Target Servers States: InstanciaB_srv1 STATE_DISTRIBUTED AdminServer STATE_DISTRIBUTED
at weblogic.management.provider.internal.ActivateTaskImpl.waitForCompletion(ActivateTaskImpl.java:505)
at weblogic.management.provider.internal.ActivateTaskImpl.waitForTaskCompletion(ActivateTaskImpl.java:478)
at weblogic.management.provider.internal.EditAccessImpl.activateChangesAndWaitForCompletion(EditAccessImpl.java:1720)
at weblogic.management.mbeanservers.edit.internal.ConfigurationManagerMBeanImpl.activate(ConfigurationManagerMBeanImpl.java:435)
...La causa
Por el detalle de la excepción y las características del entorno —dos managed servers en clúster, alojados en equipos físicos distintos— el origen está en que la fecha y la hora no estaban sincronizadas entre los hosts físicos miembros del clúster.
La activación de cambios es una operación coordinada entre el Administration Server y cada nodo: los servidores llegan a STATE_DISTRIBUTED, pero la tarea de activación no logra cerrar el ciclo y expira.
La solución
Verificar y ajustar la fecha y hora de los hosts físicos del clúster. Pasos en orden:
- Aplica los cambios en cada managed server por separado: así aíslas en qué nodo se produce la desincronización.
- Comprueba y ajusta la fecha y hora de cada host físico del clúster.
- Deja corriendo NTP en cada servidor para que la sincronización se mantenga en el tiempo.
- Reinicia el entorno y vuelve a activar los cambios.
# 2 · Ajuste manual de fecha y hora en Linux — formato MMddHHmm
date 10150948
# 3 · Comprobar que NTP mantiene la sincronización
ntpq -pResultado
Con los relojes de los hosts alineados y el entorno reiniciado, la activación de cambios en los miembros del clúster vuelve a completarse sin el timeout. Para que no se repita, la sincronización horaria por NTP debería formar parte de la línea base de cualquier clúster: en entornos distribuidos es un requisito de operación, no un detalle de infraestructura.
