A veces
nos podemos encontrar con que algunas de nuestras aplicaciones o WebServices que
a simple vista funcionan correctamente,
son terminados de manera forzada por el servidor de WebLogic. Vuelven a revisar
la aplicacion o WS y comprueban que está correcto. Pues sí, posiblemente el
problema no sea la aplicación o WS, sino una mala configuración de los
parámetros del WebLogic Server.
WebLogic
Server posee la capacidad de poder detectar procesos "estancados", estos procesos estancados son los que llevan mucho tiempo en estar ejecutandose (no en estar ociosos), sin embargo,
despues de un largo tiempo no retornan una respuesta. WebLogic no sabe si en
realidad el proceso que está ejecutando es muy largo o está estancado, y la decision que toma es categorizarlo como un "proceso estancado". Luego de detectarlo, toma la
decision de finalizarlo de manera forzada y así es como nuestra aplicación o WS
termina abruptamente.
Lo bueno de
tener herramientas de Oracle, es que "casi" todo es totalmente
personalizable. Existen dos parametros que pueden ser afinados para poder
detectar los procesos "estancados". Se puede cambiar el intervalo de
tiempo en que es monitoreado todos los procesos que se están ejecutando, y
también se puede cambiar el tiempo que debería llevar ejecutandose un proceso
antes de poder ser categorizado como "proceso estancado".
Para poder
cambiar estos parámetros debemos seguir lo siguiente:
- Logearse en la consola web del WebLogic Server.
- Clic en Environment.
- Clic en Servers.
- Clic en el ManagedServer en que está deployada nuestra aplicacion o nuestro WS.
- Clic en la pestaña Configuration.
- Clic en la sub pestaña "Tuning".
Estando
ahi los parámetros que debemos modificar son:
- Stuck Thread Max Time: El tiempo que un proceso deberia llevar ejecutandose (no ocioso) para poder ser categorizado como un "proceso estancado".
- Stuck Thread Timer Interval: A cada cuanto tiempo se debería monitorear los procesos en ejecución para detectar "procesos estancados".
A continuación
una imagen donde se puede ver estos parámetros:
Adicionalmente
a estos parámetros existe uno más. Este puede ser encontrado de la siguiente
manera:
- Logearse en la consola web del WebLogic Server.
- Clic en Environment
- Clic en Servers
- Clic en la pestaña "Configuration".
- Clic en la sub pestaña "Overload"
Ahi podemos
encontrar el parámetro Stuck Thread
Count el cual indica el número de "procesos estancados" que ese
ManagedServer debería de tener antes de poder pasar a un estado de
"FAILED".
Recuerde
reiniciar el Server despues de realizar algun cambio en estos parámetros.
Muy buena nota tecnica
ResponderEliminarCuanto es el tiempo estimado en la que se debe cambiar el Thread Max Time?
ResponderEliminarAxel, depende del tiempo que toman los procesos de tu aplicación
ResponderEliminar