17.1.11

Oracle JRockit Mission Control

Uno de los problemas que se presentan al desarrollar aplicaciones en JAVA son los “memory leak” o pérdida de memoria. Esta situación ocurre normalmente cuando se pierden las referencias a las áreas de memoria antes que se liberen.

Una de las herramientas que permite administrar, supervisar y eliminar pérdidas de memoria en aplicaciones JAVA es JRockit Mission Control.

Esta herramienta es muy fácil de configurar y operar. A continuación describiré los pasos para realizar la configuración y monitoreo de un servidor que utiliza WebLogic Server 11g.

Paso #1.
Se debe editar el archivo startWeblogic presente en el directorio bin del dominio que se quiere monitorear.


Agregar la siguiente línea al archivo
JAVA_OPTIONS= "${JAVA_OPTIONS} -Djava.rmi.server.hostname=NOMBREDELAMAQUINADONDERESIDEWLS -Xmanagement:ssl=false,authenticate=false,port=7091"
Se debe reiniciar el dominio para que tome el cambio.

Paso #2
Ejecutar el archivo JROCKIT_HOME\bin\jrmc.exe (Windows) o JROCKIT_HOME/bin/jrmc (Linux) y aparecerá la consola de Oracle JRockit Mission Control.


Crear una nueva conexión





Testear conexión, debe aparecer Status: OK



Paso #3
Revisar las opciones requeridas.






Saludos.

7 comentarios:

  1. Me gusta el comentario, pero yo he provado y no me funciona, no se si estaré haciendo algo mal, o simplemente tengo algún firewall intermedio.

    Pongo la propiedad en el startWL de la siguiente manera:
    -Djava.rmi.server.hostname=-Xmanagement:ssl=false,authenticate=false,autodiscovery=true,port=7091

    (lo del autodiscovery lo vi en la ayuda de la app)

    Pero cuando testeo la conexion simpre me dice que no se puede encriptar...

    ResponderEliminar
  2. Juan Carlos:

    La linea correcta seria:
    -Djava.rmi.server.hostname=NOMBREDELAMAQUINADONDERESIDEWLS -Xmanagement:ssl=false,authenticate=false,port=7091

    La propiedad autodiscovery no es necesaria.

    Saludos.

    ResponderEliminar
  3. He leido por ahí que para java 1.4.2 si que lo es, y mi app está desplegada con jrockit 1.4.2 con wl8.1

    ResponderEliminar
  4. Una cosa más, Debe haber algún espacio entre NOMBREMAQUINA y el -Xmamangement , o tiene que ir todo junto. He revisado el log de wl y me sale esto:

    java.rmi.server.hostname = sliro050-Xmanagement:ssl=false,authenticate=false,autodiscovery=true,port=7091


    Por otro lado tambien me aparece esta excepcion;

    ####<24-ene-2011 17H19' CET> <> <>
    ####<24-ene-2011 17H19' CET> <> <> <Failed to initialize the application ejb_
    ChartWorks due to error weblogic.management.DeploymentException: [Deployer:149206]Failed to stage the component null of the application ejb_ChartWorks..
    weblogic.management.DeploymentException: [Deployer:149206]Failed to stage the component null of the application ejb_ChartWorks.
    at weblogic.management.deploy.slave.SlaveDeployer.getApplicationInputStream(SlaveDeployer.java:1882)
    at weblogic.management.deploy.slave.SlaveDeployer.access$1700(SlaveDeployer.java:117)
    at weblogic.management.deploy.slave.SlaveDeployer$Application.restage(SlaveDeployer.java:2842)
    at weblogic.management.deploy.slave.SlaveDeployer$StagingOrder.execute(SlaveDeployer.java:3391)
    at weblogic.management.deploy.slave.SlaveDeployer$Application.stageFromOrder(SlaveDeployer.java:2800)
    at weblogic.management.deploy.slave.SlaveDeployer$Application.prepare(SlaveDeployer.java:3031)
    at weblogic.management.deploy.slave.SlaveDeployer.prepareAllApplications(SlaveDeployer.java:985)
    at weblogic.management.deploy.slave.SlaveDeployer.resume(SlaveDeployer.java:342)
    at weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.resume(DeploymentManagerServerLifeCycleImpl.java:229)
    at weblogic.t3.srvr.SubsystemManager.resume(SubsystemManager.java:136)
    at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:965)
    at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:360)
    at weblogic.Server.main(Server.java:32)



    Y por último, ¿Lógicamente si hago un netstat -ap | grep 7091 debe aparecer en listen ¿NO?


    Gracias amigo.

    ResponderEliminar
  5. Juan Carlos:

    la linea debe ser esta:
    -Djava.rmi.server.hostname=sliro050 -Xmanagement:ssl=false,authenticate=false,autodiscovery=true,port=7091

    ¿La excepcion te ocurre sin la modificacion del script?

    Adicionalmente, te recuerdo que esta configuración se realizó con wls 11g (10.3.3), no la he probado con la version 8.1. (es muy vieja) :-)

    Saludos.

    ResponderEliminar
  6. Ya, jeje.

    Pues la verdad no lo sé, miraré logs más antiguos a ver que hay.

    De todos modos probaré mañana a ver que sale poniendo el espacio en blanco. Ya te contaré si lo consigo o que.

    Te voy a seguir en Twitter, mi usuario es @capecape

    Saludos, y gracias por tu ayuda!

    ResponderEliminar