¿Qué causa los hilos atascados en WebLogic y cómo se pueden evitar? ¿Qué pueden hacer los ingenieros para mejorarlo?

Weblogic rastrea cuánto tiempo se ha asignado un hilo a una solicitud en particular. no tiene control sobre lo que sucede dentro de su servlet o EJB, por lo que realmente no sabe si el hilo realmente no está progresando, pero informará que el hilo está “atascado” si no recupera el control dentro de cierto límite. Verifique los documentos y su configuración, pero creo que el valor predeterminado es 60 segundos.

En nuestro sistema, a veces tenemos informes de subprocesos como bloqueados si realizan una operación de base de datos realmente larga, por ejemplo, archivar una gran cantidad de datos o preparar un gran informe. Esas solicitudes finalizarán, por lo que la palabra atascada no es realmente precisa, pero eso es lo que dice. También hemos visto problemas en los que una solicitud llama internamente a otro servidor que está colgado y la solicitud tarda mucho en agotar el tiempo de espera.

Su caso puede ser diferente. Si los hilos de alguna manera terminan en un punto muerto de Java, es posible que nunca se completen. Sin embargo, esto sería inusual.

Para evitar subprocesos atascados, mantenga sus solicitudes cortas al monitorear su rendimiento y abordar cualquier problema que encuentre. Si ve hilos atascados en la consola de weblogic, puede hacer un volcado de hilos de inmediato para ver exactamente qué están haciendo esos hilos atascados (weblogic parece establecer el nombre del hilo para incluir la palabra “atascado” para que pueda elegirlos fácilmente) . Si la parte superior del seguimiento de la pila muestra jdbc, sabe que es un problema de la base de datos. Si está esperando un bloqueo de objeto, podría ser un punto muerto. Realmente dependerá de lo que esté haciendo tu aplicación.

¡Espero que sea de ayuda!

Los hilos pegados no son más que hilos de larga ejecución.

Cada vez que un subproceso en particular sigue ejecutándose más allá del umbral definido, se clasifica en subprocesos atascados en weblogic.

Para encontrar la causa raíz del problema, debemos realizar lo siguiente:

  1. Verifique qué operación hace.
  2. Si se trata de actividad de la base de datos, verifique qué consulta se está ejecutando durante mucho tiempo y ajuste la consulta si es necesario
  3. Si se trata de una actividad de inicio de sesión, verifique cómo está ocurriendo la autenticación y dónde realmente se atascó.
  4. Si se trata de algún otro problema de implementación o jms, obtenga un volcado de subprocesos y analícelo utilizando varias herramientas para descubrir la causa real.

¡¡Espero que esto ayude!!

Trataré de ponerlo en términos simples. En Java, el tiempo de ejecución estándar para los subprocesos de Java es de 600 segundos. WLS fue diseñado con ese estándar. Entonces, si WLS ve que algunos subprocesos tardan más de ese tiempo, alerta a un subproceso como bloqueado. Entonces no es necesariamente un problema. La captura es el tiempo de ejecución estándar. Pero si su equipo de desarrollo interno espera que la ejecución de un subproceso se complete en menos de 5 minutos, entonces debe comenzar la resolución de problemas para encontrar la causa raíz. No puede evitar hilos atascados. Pero puedes cuidarlos. La resolución de problemas lo ayudará a encontrar las causas raíz. Factores como el comportamiento de la capacidad de red de diseño de aplicaciones de recursos remotos están más allá del control de WLS. La configuración de infraestructura débil siempre traerá algún problema u otro. Desde el aspecto WLS, puede aplicar las últimas actualizaciones del conjunto de parches para la versión actual para asegurarse de que se solucionen todos los errores conocidos. Lo mismo ocurre con su JDK subyacente.