Ir al contenido principal

Snippets Mongo DB

 Esta publicación servirá para ir colocando fragmentos de consultas que en algún momento me fueron útiles para usarlo en MongoDB Fragmento 1:  Se requería obtener todos los elementos que dentro de un atributo que es de tipo array(arreglo) coincida  con type:"fire"  Fragmento 2: Se requería actualizar el atributo " lastUpdate "  de toda la colección donde la  edad sea mayor o igual a 15.

Configurar proceso java para Analizar con Profiling Tool Visual VM






No se si el titulo sea el correcto para lo que voy a explicar, resulta ser que habia generado un proceso batch este batch contenia una serie de operaciones distribuidas en varios Threads lo que me daba resultados satisfactorios, pero este tenia problemas que a simple vista no me daba cuenta hasta que aparecia el mensaje java.lang.OutOfMemoryError: Java heap space despues de 20 a 30 minutos, para saber por que estaba acabando la memoria  el uso del CPU era excesivo utilce el Profiler Visual VM este herramienta si bien no me resolvio el problema,me ayudo a ver de forma local el comportamiento del cosumo de memoria y uso de CPU indicandome que Thread me estaba dando lata pero despues quera utilizarlo desde el servidor remoto donde se encontraba mi proceso para eso realice los siguiente: 
 

Tenia mi .ksh llamado miscript.ksh este contenia la siguiente informacion
 
  #!/bin/ksh

    PATH=/usr/java/jre1.6.0_33/bin:$PATH
   
    export PATH

    CLASSPATH=./EsteEsMiJar.jar

    export CLASSPATH

    PROP_JMX_REMOTE="-Djava.rmi.server.hostname=192.168.1.12 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9015 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

    java -Xms100m -Xmx100m $PROP_JMX_REMOTE  com.elkardumen.core.Server Identificador > /log.txt &

   
   
    Dada esta informacion lo que realmente es necesario para momitorear el comportamiento en el host remoto es la linea:
   
  PROP_JMX_REMOTE="-Djava.rmi.server.hostname=192.168.1.12 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9015 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
   
Tambien es necesario verificar que el puerto este disponible para ser usado , esto lo hacemos con netstat -n| grep 9015,una vez hecho esto solo queda hacer lo siguiente en VisualVM

 Abrimos VisualVM
 Doble click en Remote para introducir la ip del server remoto.

Despues se agregara debajo de Remote la ip correspondiente a el servidor remoto, ahi mismo damos click derecho y saldra el menu para elegir opcion Add JMX Connection

 Mostrara una pantalla donde introducieremos la ip del servidor remoto con el puerto que utilizamos  en la configuracion del .ksh en nuestro ejemplo es 9015.
 Esto agrega debajo de la ip un icono JMX a este le damos click derecho y elejimos Open.
 Y listo mostrara del lado derecho las opciones para visualizar y analizar el proceso
 Pestaña monitor
 Pestaña Threads

Algunas referencias:
http://www.infoq.com/articles/java-profiling-with-open-source
http://visualvm.java.net/profiler.html

Comentarios

Entradas más populares de este blog

Resetear usuario y contraseña Weblogic

Esta ocasión se me presento un pequeño problema con el acceso a mi weblogic local, podía levantar mi weblogic pero para entrar a la consola no tenia el usuario ni password (Autenticación Denegada Weblogic).Por lo que busque en la red para poder resetear el usuario y password de weblogic.

No se puede llamar Invoke o a BeginInvoke

Que tal banderola pues aca escribiendo sobre un error que me dio al instalar el administrador Microsoft SQL 2008 , pues bien resulta que necesitaba instalar esta tool, y cuando trataba de iniciar el wizard me lanzaba un error que decia algo asi " No se puede llama a Invoke o a BeginInvoke en un control hasta que se halla creado el indentificador de ventana" si no me creen vean la imagen : y entonces me dije a mi mismo, "mi mismo como le voy hacer" entonces pues tube que recurrir a mi salvacion como siemore :D San Google.com, y ya con unas cuantas palabras clave pues que me lanza algunos resultados de los cuales me habia encontrado algo como esto: Problemas al instalar SQL Server 2008 ? Para lo cual no hice caso a este tip pues resulta que yo no tenia instaldo el windows xp, mas bien tenia instalado el windows 7 por que leyendo en los comentarios que se habian hecho llegue a un muy buen tip que decia algo asi: "Para aquellos compañeros que quieren instalar el S