¿Cómo se genera y analiza un volcado de subprocesos desde una instancia de JBoss en ejecución?

StackOverflow https://stackoverflow.com/questions/59787

  •  09-06-2019
  •  | 
  •  

Pregunta

¿Cómo se genera y analiza un volcado de subprocesos desde una instancia de JBoss en ejecución?

¿Fue útil?

Solución

Existe un método específico de JBoss que es un poco más fácil de usar:

http://community.jboss.org/wiki/GenerateAThreadDumpWithTheJMXConsole

Esto es especialmente útil cuando no se tiene acceso directo a la máquina host (lo que requeriría "matar").

Otros consejos

http://java.sun.com/developer/technicalArticles/Programming/Stacktrace/

...

"En plataformas UNIX puedes enviar una señal a un programa usando el comando kill.Esta es la señal de salida, que es manejada por la JVM.Por ejemplo, en Solaris puede utilizar el comando kill -QUIT id_proceso, donde id_proceso es el número de proceso de su programa Java.

Alternativamente, puede ingresar la secuencia de teclas <ctrl>\ en la ventana donde se inició el programa Java.El envío de esta señal indica a un controlador de señales en la JVM que imprima de forma recursiva toda la información sobre los subprocesos y monitores dentro de la JVM".

...

"Determinación de los estados del hilo

Verá muchos subprocesos diferentes en muchos estados diferentes en una instantánea de un seguimiento de la pila JVM.La clave utilizada es:

R Hilo en ejecución o ejecutable

S Hilo suspendido

Hilo CW esperando una variable de condición

MW Thread esperando en un bloqueo de monitor

MS Thread suspendido esperando en un bloqueo de monitor"

La aplicación stacktrace encontrada aquí También es útil, especialmente en máquinas con Windows cuando la aplicación Java no se inicia desde la línea de comandos.

Thread.getAllStackTraces() (desde Java 1.5)

Dos opciones:

OPCIÓN 1 Genere un volcado de subprocesos usando la consola JMX

Para generar un volcado de subprocesos:

  1. Abra JMXConsole (por ejemplo: http://localhost:8080 )
  2. Navegar a jboss.system:type=ServerInfo mbean (pista: probablemente puedas simplemente CTRL-F e ingresar tipo=ServerInfo en el cuadro de diálogo)
  3. Haga clic en el enlace del mbean Información del servidor.
  4. Navega hasta el final donde dice listThreadDump
  5. Haz clic en él y obtén el volcado de tu hilo.

Notas:

Si está utilizando Internet Explorer, debe utilizar File > Save As para guardar el resultado en lugar de copiar los datos a un editor de texto.Por alguna razón, cuando copia el texto de Internet Explorer, los saltos de línea no se copian y todo el resultado termina en una sola línea.

OPCION 2 Generar un volcado de subprocesos usando Twiddle

Alternativamente, puedes usar twiddle para ejecutar el listThreadDump() método y canaliza el HTML devuelto directamente al archivo.Utilice esta línea de comando:

<JBOSS_HOME>/bin/twiddle invoke "jboss.system:type=ServerInfo" listThreadDump > threads.html

A veces JBoss se bloquea tanto que ni siquiera jmx-concole responde.En tal caso utilice kill -3 en Linux y Enviar señal en Windows.

https://community.jboss.org/wiki/ThreadDumpJSP La página presenta threaddump.war independiente y autónomo que se puede usar sin JMX.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top