java - log - ¿Cómo se genera y analiza un volcado de hilo desde una instancia de JBoss en ejecución?
thread dump analyzer (7)
http://java.sun.com/developer/technicalArticles/Programming/Stacktrace/
...
"En plataformas UNIX puede enviar una señal a un programa utilizando el comando kill. Esta es la señal de salida, que es manejada por la JVM. Por ejemplo, en Solaris puede usar el comando kill -QUIT process_id, donde process_id 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 instruye a un manejador de señal en la JVM, para imprimir recursivamente toda la información en los hilos y monitores dentro de la JVM. "
...
"Determinando los Estados del hilo
Verá muchos subprocesos diferentes en muchos estados diferentes en una instantánea de un rastreo de pila de JVM. La clave utilizada es:
R Ejecución o hilo ejecutable
S Hilo suspendido
Hilo de CW esperando en una variable de condición
MW Thread esperando en un bloqueo de monitor
MS Tema suspendido esperando en un bloqueo de monitor "
¿Cómo se genera y analiza un volcado de hilo desde una instancia de JBoss en ejecución?
La aplicación stacktrace que se encuentra 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.
A veces, JBoss bloquea tanto que incluso el jmx-concole no responde. En tal caso, use kill -3 en Linux y SendSignal en Windows.
Hay 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 tiene acceso directo a la máquina host (lo que "kill" requeriría).
Thread.getAllStackTraces () (desde Java 1.5)
Dos opciones:
OPCIÓN 1 Generar un volcado de hilo utilizando la consola JMX
Para generar un volcado de hilo:
- Abra la JMXConsole (por ejemplo:
http://localhost:8080
) - Navegue a
jboss.system:type=ServerInfo
mbean ( sugerencia: probablemente solojboss.system:type=ServerInfo
presionar CTRL-F e ingresar type = ServerInfo en el cuadro de diálogo) - Haga clic en el enlace de la Información del servidor mbean.
- Navega hasta el final donde dice
listThreadDump
- Haga clic en él y obtenga su volcado de hilo
Notas:
Si usa Internet Explorer, debe usar 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 toda la salida termina en una sola línea.
OPCIÓN 2 Generar un volcado de subprocesos usando Twiddle
Alternativamente, puede usar twiddle para ejecutar el método listThreadDump()
y canalizar el HTML devuelto directamente al archivo. Usa esta línea de comando:
<JBOSS_HOME>/bin/twiddle invoke "jboss.system:type=ServerInfo" listThreadDump > threads.html
La página https://community.jboss.org/wiki/ThreadDumpJSP incluye threaddump.war autónomo e independiente que se puede usar sin JMX.