Análisis de thread dumps en WebLogic: ThreadLogic

Siguiendo con el tema de análisis de thread dumps, que se empezó en este otro post, vamos a centrarnos en la utilización de la aplicación ThreadLogic, que ha sido desarrollada por el equipo de arquitectos de Oracle FMW orientándola a dumps de servidores de aplicaciones. Se puede descargar aquí.

Al igual que Samurai y Thread Dump Analyzer (TDA), se trata de una aplicación libre que se arranca lanzando: java -jar <path fichero jar>

Comentar que para las pruebas se han utilizado las mismas aplicaciones que en el post anterior.

Diferencias con Thread Dump Analyzer (TDA)

El desarrollo de esta herramienta se ha realizado a partir de TDA:

  1. La información se muestra de una forma mucho más visual.
  2. La información está más categorizada:

threadlogic categorias dumps

  1. Está muy orientada al análisis de thread dumps de Oracle WebLogic Server:

threadlogic categorias dumps WLS

  1. Se puede filtrar por el estado del thread:

threadlogic filtro health

Stuck threads

Los stuck threads se marcan con este estado a nivel de servidor de aplicaciones cuando un thread está corriendo durante más de X segundos.

Aunque no necesariamente ha de existir un problema, sí que podría llegar a serlo (ver post sobre stuck threads en WebLogic).

Por lo tanto, esta herramienta categoriza los stuck threads como ‘FATAL’:

threadlogic threads fatal

Al igual que con TDA, si se selecciona el thread, muestra el stack donde se observa la clase con posibles problemas:

threadlogic thread stuck

Otra forma de encontrar stuck threads es navegar a Thread Group Summary –> WLS Thread Groups –> Rest of WLS –> Threads at Warning or Above

threadlogic threads warning or above

Deadlocks

Cuando existe un deadlock en el thread dump, aparece una categoría que permite ir directamente a la información de los threads implicados:

threadlogic deadlock

threadlogic monitors deadlock

Configuración de patrones

Como se ha comentado anteriormente, esta herramienta permite la categorización de los threads.

Esto se consigue gracias a unos ficheros XML de configuración con los patrones que se han de cumplir para añadir los threads en una u otra categoría, estado, etc.

Empaquetado con el fichero JAR se encuentran tres ficheros de configuración XML en comoracleateamthreadlogicresources:

  • AdvisoryMap.xml: se utiliza para relacionar un patrón con un estado (FATAL, WARNING, etc.) así como para facilitar una descripción y unas instrucciones a seguir para el análisis.

threadlogic advisorymap stuck

  • NonWLSGroups.xml: patrones para incluir los threads en el grupo de threads no propios de WLS.
  • WLSGroups.xml: patrones para incluir los threads en el grupo de threads propios de WLS.

Alta nuevo Advisory

Para crear un nuevo patrón de búsqueda a ser utilizado por la herramienta se tienen que seguir estos pasos:

  1. Desempaquetar el fichero jar original.
  2. Añadir el fichero AdvisoryMap.xml:

threadlogic nuevo advisory

  1. Volver a empaquetar el jar (en nuestro caso lo hemos renombrado a ThreadLogic-2.0.217.1.jar).
  2. Lanzar la nueva versión del jar.

Siguiendo estos pasos, se puede ver como se carga el nuevo fichero XML donde tenemos nuestro patrón custom:

threadlogic advisory custom

threadlogic advisory custom 2

Aunque hemos categorizado este patrón como WARNING, como que a su vez se produce un bloqueo, éste también se categoriza como FATAL, que es como se muestra finalmente el estado del thread.

Alta nueva categoría

Puede ser interesante, para analizar el uso de una determinada aplicación, crear una nueva categoría de threads de WLS.

Para realizar esto hay que:

  1. Desempaquetar el fichero jar original.
  2. Añadir al fichero WLSGroups.xml:

threadlogic nuevo grupo

Para el ejemplo únicamente hemos definido un patrón para cada grupo, pero se pueden añadir varios patrones a base de añadir varios tags ‘<Pattern>’.

  1. Volver a empaquetar el jar (en nuestro caso lo hemos renombrado a ThreadLogic-2.0.217.1.jar).
  2. Lanzar la nueva versión del jar.

Siguiendo estos pasos, se crea una nueva categoría con la lista de threads que cumplen el nuevo patrón definido:

threadlogic grupo custom

Twitter
LinkedIn
Evolución, innovación y transformación
37 Service Expertise avalados por Oracle 
Nuestra propuesta de valor
Posts 100% Oracle
Sigue nuestro día a día