PDF de programación - Monitoree una aplicación Java con Health Center API, Parte 1

Monitoree una aplicación Java con Health Center API, Parte 1gráfica de visualizaciones

Publicado el 17 de Julio del 2017
467 visualizaciones desde el 17 de Julio del 2017
517,0 KB
14 paginas
Creado hace 10a (03/12/2013)
Monitoree una aplicación Java con Health Center API,
Parte 1
Iniciar con Health Center API

Toby Corbin
Software Engineer
IBM Japan

27-05-2013

El release 2.1 del Health Center contiene una API eficiente. La API permite a los
desarrolladores Java™ incorporar al Health Center en sus aplicaciones y emplear su poder de
monitoreo para la resolución de problemas. En la Parte 1 de este artículo de dos partes usted
aprendió a usar Health Center API y a monitorear puntos muertos en una aplicación Java en
ejecución. La Parte 2 usa la aplicación de detección de punto muerto que es desarrollada en
este artículo y añade una visualización de elaboración de perfiles de métodos para mostrar
dónde gasta la aplicación la mayoría de sus ciclos de CPU.

¿Alguna vez se ha colgado su servidor de aplicaciones sin ningún motivo aparente?, ¿o
una aplicación Java no responde? ¿A su aplicación se le acaba la memoria o tiene un mal
rendimiento? Con Health Center usted puede resolver ese tipo de problemas más fácilmente.
Monitoreo y diagnóstico de problemas con Health Center
El IBM® Monitoring and Diagnostics Tools para Java - Health Center (Health Center) es una
herramienta de diagnóstico gratuita de baja sobrecarga y API para monitorear una aplicación que
se ejecuta en una máquina virtual Java (JVM) de IBM. Con Health Center, usted puede acceder
al estado de una aplicación Java en ejecución rápidamente al proporcionar informacion para
identificar y resolver problemas. Puede:

• Identificar si la memoria nativa o de almacenamiento dinámico se está fugando
• Descubrir qué métodos toman el mayor tiempo para ejecutarse
• Localizar cuellos de botella de E/S
• Visualizar y ajustar recolección de basura
• Ver cualquier conexión bloqueda
• Analisar eventos de WebSphere® Real Time inusuales
• Monitorear la actividad de hebras de su aplicación
• Detectar condiciones de punto muerto

© Copyright IBM Corporation 2013
Monitoree una aplicación Java con Health Center API, Parte 1

Marcas
Pagina 1 de 14

developerWorks®

ibm.com/developerWorks/ssa/

• Recolectar datos de histograma de clase

El último release de Health Center es una nueva y eficiente API que usted puede usar para
escribir su propia herramienta de monitoreo. Los días con problemas fastidiosos y difíciles de
solucionar ahora están contados.

En este artículo, aprenda a escribir una herramienta de monitoreo que verifica una aplicación
para detectar condiciones de punto muerto. Posteriormente, aplique estos principios para escribir
herramientas más a profundidad, consulte cualquier cosa desde una actividad de recolección de
basura hasta la elaboración de perfiles de método, y comprenda dónde gasta su aplicación sus
ciclos de CPU.

Requisitos del sistema
El paquete Health Center API requiere un mínimo de Eclipse 3.4 o Eclipse 4.x.

Instalando el paquete API en Eclipse
Las herramientas IBM Monitoring and Diagnostics normalmente son instaladas en IBM Support
Assistant (ISA). Para incorporar Health Center en su aplicación y codificar contra él usando la API,
primero instálelo en su entorno Eclipse. Para hacer eso, siga estos pasos:

1. Inicie el entorno de desarrollo Eclipse.
2. Vaya a Help -> Install New Software.
3. Añada el sitio actualizado ISA como el nuevo sitio.

1. Haga clic en Add.
2. Coloque el sitio ISA Update en el recuadro de nombre.
3. Coloque este URL en el recuadro de ubicación: http://public.dhe.ibm.com/software/
isa/isa410/production/. Esta acción inicia una búsqueda de todas las herramientas
disponibles y toma unos minutos.

4. Ingrese Health Center en el recuadro de búsqueda
5. Seleccione el paquete Health Center Core Feature y haga clic en Next (ver Figura 1):

Figura 1. Lista de software disponible para instalar

Monitoree una aplicación Java con Health Center API, Parte 1

Pagina 2 de 14

ibm.com/developerWorks/ssa/

developerWorks®

6. Verifique los detalles de instalación y haga clic en Next.
7. Lea y acepte los términos de licencia y posteriormente haga clic en Finish. Estos pasos

sirven para la istalación del dispositivo Health Center Core en su Eclipse IDE. Usted está listo
para codificar contra la API.

8. Verifique los detalles de instalación y haga clic en Next.

Usando la API, escriba un simple rcp para detectar un punto muerto. Primero, cree un nuevo
proyecto en Eclipse y añada Health Center API como una dependencia. Para hacer eso, siga
estos pasos:

1. Vaya a File -> New -> Project -> Plug-in Project.
2. De un nombre al proyecto como HC_Deadlock. Haga clic en Next.
3. Deseleccione la casilla de verificación Generate an activator . Cuando se le pregunte si

desea crear una aplicación de cliente abundante, haga clic en Yes. Haga clic en Next (ver
Figura 2):
Figura 2. Opciones de proyecto plug-in

4. Haga clic en Next. En la pantalla de plantilla, seleccione Headless Hello RCP. Haga clic en

Finish.

Monitoree una aplicación Java con Health Center API, Parte 1

Pagina 3 de 14

developerWorks®

ibm.com/developerWorks/ssa/

Después añada el paquete de Health Center API como una dependencia del nuevo proyecto. Siga
los siguientes pasos:

1. Para añadir la importación API al manifiesto, abra el archivo MANIFEST.MF bajo META-INF

en su nuevo proyecto (ver Figura 3):
Figura 3. Plug-ins de Package Explorer

2. Seleccione la pestaña Dependencies y haga clic en Add. En el campo Select

a Plug-in escriba healthcenter.api en la búsqueda. Seleccione el plug-in
com.ibm.java.diagnostics.healthcenter.api—observe que el número de versión puede ser
diferente (ver Figura 4):

Monitoree una aplicación Java con Health Center API, Parte 1

Pagina 4 de 14

ibm.com/developerWorks/ssa/

developerWorks®

Figure 4. Selección de plug-in de Health Center API

3. Haga clic en OK. Repita el ejercicio desde el paso de la pestaña de Select the Dependencies

. En esta ocasión, añada org.eclipse.ui—de nuevo. El número de la versión puede ser
diferente (ver Figura 5):

Monitoree una aplicación Java con Health Center API, Parte 1

Pagina 5 de 14

developerWorks®

ibm.com/developerWorks/ssa/

Figura 5. Selección de plug-in de org.eclipse.ui

4. Haga clic en OK y posteriormente guarde al archivo.

El API plug-in ahora está incluido en su aplicación y usted puede iniciar a codificar contra él.
Pruebas contra una aplicación de punto muerto
Antes de que pueda escribir una herramienta de monitoreo, usted necesita algo para monitorear.
El Listado 1 muestra el código fuente para una aplicación sencilla que obtiene un punto muerto:

Listado 1. Una aplicación sencilla con un punto muerto

public class GenerateDeadlock {
AThread t1 = null;
AThread t2 = null;
AThread t3 = null;

static class AThread extends Thread {
Object hold;
Object grab;

AThread(String name, Object hold, Object grab) {
super(name);
this.hold = hold;
this.grab = grab;
}

private void delay(long time) {
try {
Thread.sleep(time);
} catch (InterruptedException e) {
}

Monitoree una aplicación Java con Health Center API, Parte 1

Pagina 6 de 14

ibm.com/developerWorks/ssa/

developerWorks®

}

private void grabLocks() {
System.out.println("Thread " + this + " about to hold " + hold);
synchronized (hold) {
System.out.println(" Thread " + this + " about to grab "
+ grab);
delay(5000);
synchronized (grab) {
System.out.println(" Thread " + this
+ " got both monitors");
delay(1000000);
}
}
}

public void run() {
System.out.println("Thread " + this + " starting");
for (int i = 0; i < 200000; i++) {
grabLocks();
}
System.out.println("Thread " + this + " completed");
}
}

private void createDeadlock() {
System.out.println("Force 3 thread deadlock");
String s1 = "obj 1";
String s2 = "obj 2";
String s3 = "obj 3";
t1 = new AThread("Thread 1", s1, s2);
t2 = new AThread("Thread 2", s2, s3);
t3 = new AThread("Thread 3", s3, s1);
t1.start();
t2.start();
t3.start();
}

public static void main(String[] args) {
GenerateDeadlock d = new GenerateDeadlock();
d.createDeadlock();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Press a key to exit");
try {
System.in.read();
System.exit(0);
} catch (java.io.IOException e) {
}
}
}

Health Center tiene dos partes. La primera parte es el agente Health Center, que se carga con la
aplicación que usted desea monitorear. El agente proporciona acceso a los datos en JVM, que es
la segunda parte del Health Center—que el cliente— posteriormente usa. La API le brinda acceso
a este cliente, que normalmente se inicia desde ISA. Incorpore el cliente en su aplicación para
conectar una aplicación que fue iniciada con el agente Health Center y obtenga acceso a todos
los datos que el cliente Health Center monitorea y muestra. La API no proporciona una GUI, en
vez de eso pone a disposición todos los datos para su uso en su propia aplicación. La Figura 6

Monitoree una aplicación Java con Health Center API, Parte 1

Pagina 7 de 14

developerWorks®

ibm.com/developerWorks/ssa/

muestra una visión general de dónde se ubican el cliente y el agente Health Center cuando son
instalados en ISA y en el JVM:

Figura 6. Ubicaciones del cliente y agente Health Center cuando se instalan en
ISA y en JVM

Inicie el programa en el Listado 1 con el agente Health Center adjunto a él. También requiere un
mínimo de nivel IBM Java de Java 5 SR8, Java 6 SR1, o Java 7. Usted puede descargar IBM
developer kits.

Para iniciar la aplicación con el agente usando Java 5 SR10 y posterior, Java 6 SR5 y posterior, y
Java 7, use este comando (vea la Figura 7):

java - Xhealthcenter GenerateDeadlock

Para
  • Links de descarga
http://lwp-l.com/pdf5409

Comentarios de: Monitoree una aplicación Java con Health Center API, Parte 1 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad