Hola, muchas veces debemos asignar mayor recurso de memoria a tomcat, y esto lo podemos hacer configurando el archivo catalina.sh en linux o catalina.bat en windows, este se encuentra en el directorio bin de apache-tomcat, agregando la linea:
export JAVA_OPTS="-Xms1024m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m"
En otros casos.. cuando estamos desarrollando con eclipse, y tenemos ahí configurado nuestro tomcat con el plugin sysdeo, podemos agregar estas variables al parametro JVM settings que esta en :
Windows -> preferences -> >Tomcat -> JVM Settings
y ahí clikeamos add al campo Append to JVM Parameters, se abre una ventana de dialogo y podemos agregar las mismas opciones de jvm
-Xmx512m -Xms512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=128m
con esto ya tendríamos mas memoria asignada de nuestra java virtual machine a tomcat
saludos
miércoles, 27 de agosto de 2014
Ver procesos Java
Hola, en algunos casos tenemos mas de un proceso java corriendo en nuestros sistema linux, para ver que process ID corresponde a que proceso Java podemos ejecutar el siguiente comando por consola, y desde cualquier ruta de nuestro SO:
slack@zion:~/programas/redmine-2.5.1-1$ ps -fea | grep java
el resultado de este debiera ser similar a lo siguiente, siempre y cuando tengamos procesos java corriendo.
slack 4652 4650 11 09:40 ? 00:06:29 /usr/bin/java -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms512m -Xmx1024m -jar /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar -os linux -ws gtk -arch x86_64 -showsplash /home/slack/programas/eclipse_kepler//plugins/org.eclipse.platform_4.3.2.v20140221-1700/splash.bmp -launcher /home/slack/programas/eclipse_kepler/eclipse -name Eclipse --launcher.library /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140116-2212/eclipse_1508.so -startup /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar --launcher.appendVmargs -exitdata 140003 -product org.eclipse.epp.package.jee.product -vm /usr/bin/java -vmargs -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms512m -Xmx1024m -jar /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
slack 10308 1 58 10:22 ? 00:09:44 /home/slack/programas/java/jdk1.6.0_05/jre/bin/java -Dcatalina.home=/home/slack/programas/apache-tomcat-5.5.33 -classpath /home/slack/programas/java/jdk1.6.0_05/lib/tools.jar:/home/slack/programas/apache-tomcat-5.5.33/bin/bootstrap.jar org.apache.catalina.startup.Bootstrap start
slack 11663 3189 0 10:38 pts/0 00:00:00 grep --color=auto java
Bueno, aunque parezca difícil de leer, podemos identificar claramente aquí los procesos java corriendo en nuestro sistema, donde :
primero va el usuario que esta ejecutando el proceso, aqui es : slack
luego de este parametro se indica el process id, PID, donde aqui para el primer proceso es : 4652
y seguidamente va la hora desde que corre el proceso, aqui para mi primer proceso de la lista es : 09:40
y posteriormente va el comando que se esta ejecutando, aqui es : /usr/bin/java -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms512m -Xmx1024m -jar /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar -os linux -ws gtk -arch x86_64 -showsplash /home/slack/programas/eclipse_kepler//plugins/org.eclipse.platform_4.3.2.v20140221-1700/splash.bmp -launcher /home/slack/programas/eclipse_kepler/eclipse -name Eclipse --launcher.library /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140116-2212/eclipse_1508.so -startup /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar --launcher.appendVmargs -exitdata 140003 -product org.eclipse.epp.package.jee.product -vm /usr/bin/java -vmargs -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms512m -Xmx1024m -jar /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
Este corresponde al ide Eclipse, el segundo proceso que podemos identificar de la misma forma corresponde a Tomcat y el tercer proceso es el comando ps -fea | grep java
Entonces cuando queramos matar alguno de estos procesos java, identificamos su PID y ejecutamos por consola:
slack@zion:~/programas/redmine-2.5.1-1$ kill -9 4652
entonces aqui acabamos de matar el proceso Eclipse, y aunque no era el que quería matar resulto bien, si ejecutamos nuevamente el ps -fea , ahora vemos que solo tenemos el proceso tomcat corriendo
slack@zion:~/programas/redmine-2.5.1-1$ ps -fea | grep java
slack 10308 1 75 10:22 ? 00:20:45 /home/slack/programas/java/jdk1.6.0_05/jre/bin/java -Dcatalina.home=/home/slack/programas/apache-tomcat-5.5.33 -classpath /home/slack/programas/java/jdk1.6.0_05/lib/tools.jar:/home/slack/programas/apache-tomcat-5.5.33/bin/bootstrap.jar org.apache.catalina.startup.Bootstrap start
slack 12179 3189 0 10:49 pts/0 00:00:00 grep --color=auto java
ahora matamos tomcat :
slack@zion:~/programas/redmine-2.5.1-1$ kill -9 10308
y volvemos a ejecutar :
slack@zion:~/programas/redmine-2.5.1-1$ ps -fea | grep java
y solo tenemos como resultado :
slack 12263 3189 0 10:52 pts/0 00:00:00 grep --color=auto java
eso es,
saludos
slack@zion:~/programas/redmine-2.5.1-1$ ps -fea | grep java
el resultado de este debiera ser similar a lo siguiente, siempre y cuando tengamos procesos java corriendo.
slack 4652 4650 11 09:40 ? 00:06:29 /usr/bin/java -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms512m -Xmx1024m -jar /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar -os linux -ws gtk -arch x86_64 -showsplash /home/slack/programas/eclipse_kepler//plugins/org.eclipse.platform_4.3.2.v20140221-1700/splash.bmp -launcher /home/slack/programas/eclipse_kepler/eclipse -name Eclipse --launcher.library /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140116-2212/eclipse_1508.so -startup /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar --launcher.appendVmargs -exitdata 140003 -product org.eclipse.epp.package.jee.product -vm /usr/bin/java -vmargs -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms512m -Xmx1024m -jar /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
slack 10308 1 58 10:22 ? 00:09:44 /home/slack/programas/java/jdk1.6.0_05/jre/bin/java -Dcatalina.home=/home/slack/programas/apache-tomcat-5.5.33 -classpath /home/slack/programas/java/jdk1.6.0_05/lib/tools.jar:/home/slack/programas/apache-tomcat-5.5.33/bin/bootstrap.jar org.apache.catalina.startup.Bootstrap start
slack 11663 3189 0 10:38 pts/0 00:00:00 grep --color=auto java
Bueno, aunque parezca difícil de leer, podemos identificar claramente aquí los procesos java corriendo en nuestro sistema, donde :
primero va el usuario que esta ejecutando el proceso, aqui es : slack
luego de este parametro se indica el process id, PID, donde aqui para el primer proceso es : 4652
y seguidamente va la hora desde que corre el proceso, aqui para mi primer proceso de la lista es : 09:40
y posteriormente va el comando que se esta ejecutando, aqui es : /usr/bin/java -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms512m -Xmx1024m -jar /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar -os linux -ws gtk -arch x86_64 -showsplash /home/slack/programas/eclipse_kepler//plugins/org.eclipse.platform_4.3.2.v20140221-1700/splash.bmp -launcher /home/slack/programas/eclipse_kepler/eclipse -name Eclipse --launcher.library /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140116-2212/eclipse_1508.so -startup /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar --launcher.appendVmargs -exitdata 140003 -product org.eclipse.epp.package.jee.product -vm /usr/bin/java -vmargs -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms512m -Xmx1024m -jar /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
Este corresponde al ide Eclipse, el segundo proceso que podemos identificar de la misma forma corresponde a Tomcat y el tercer proceso es el comando ps -fea | grep java
Entonces cuando queramos matar alguno de estos procesos java, identificamos su PID y ejecutamos por consola:
slack@zion:~/programas/redmine-2.5.1-1$ kill -9 4652
entonces aqui acabamos de matar el proceso Eclipse, y aunque no era el que quería matar resulto bien, si ejecutamos nuevamente el ps -fea , ahora vemos que solo tenemos el proceso tomcat corriendo
slack@zion:~/programas/redmine-2.5.1-1$ ps -fea | grep java
slack 10308 1 75 10:22 ? 00:20:45 /home/slack/programas/java/jdk1.6.0_05/jre/bin/java -Dcatalina.home=/home/slack/programas/apache-tomcat-5.5.33 -classpath /home/slack/programas/java/jdk1.6.0_05/lib/tools.jar:/home/slack/programas/apache-tomcat-5.5.33/bin/bootstrap.jar org.apache.catalina.startup.Bootstrap start
slack 12179 3189 0 10:49 pts/0 00:00:00 grep --color=auto java
ahora matamos tomcat :
slack@zion:~/programas/redmine-2.5.1-1$ kill -9 10308
y volvemos a ejecutar :
slack@zion:~/programas/redmine-2.5.1-1$ ps -fea | grep java
y solo tenemos como resultado :
slack 12263 3189 0 10:52 pts/0 00:00:00 grep --color=auto java
eso es,
saludos
lunes, 12 de mayo de 2014
Argo UML
Siempre decían que del 100 % del tiempo para el desarrollo de un software, debía ser el 70 % del tiempo destinado a modelamiento y el 30% del tiempo restante en construcción, sin embargo sabemos que en la liberación de los módulos de las aplicaciones estos porcentajes se dan vuelta y terminamos con un 30% del tiempo en modelamiento y el 70% en construcción.
Es por esto que debemos en la experiencia ir mejorando nuestros métodos y formas del uso del tiempo para el modelamiento del software. y también adquirir algún grado de expertis en alguna herramienta de modelamiento que nos ayude a modelar mas y programar menos.
He probado algunas como poseidon, argo, rational, plugin de netbeans y eclipse, y otras, pero ya llevo buen tiempo usando ArgoUML, y me parece una de las mejores, aunque últimamente tigris no la ha actualizado cumple con los estándares y especificaciones para UML.
Con Argo tu puedes crear un proyecto, crear los packages y los diagramas, que luego generaran las clases Java para llevarlas a tu proyecto eclipse.
Si trabajas con patron MVC, Struts, Spring, u otro modelo de 3 capas te sera util ordenar tu proyecto en packages de implementacion, organizando los manager y los impl tal como spring o struts lo requieren.
Una técnica que utilizo habitualmente cuando tengo que analizar un modelo de negocio u otra implementación, es comenzar diseñando los casos de uso en un package usecase desde el nivel 0 al nivel requerido para el detalle de las funcionalidades.
Argo contiene todos los elementos para los diagramas de casos de uso, diagramas de despliegue, diagramas de clases, diagramas de colaboracion, de secuencia, etc..
Luego con las opciones puedes exportar tu modelamiento a codigo fuente Java para levantarlo desde eclipse.
http://argouml.tigris.org/
Es por esto que debemos en la experiencia ir mejorando nuestros métodos y formas del uso del tiempo para el modelamiento del software. y también adquirir algún grado de expertis en alguna herramienta de modelamiento que nos ayude a modelar mas y programar menos.
He probado algunas como poseidon, argo, rational, plugin de netbeans y eclipse, y otras, pero ya llevo buen tiempo usando ArgoUML, y me parece una de las mejores, aunque últimamente tigris no la ha actualizado cumple con los estándares y especificaciones para UML.
Con Argo tu puedes crear un proyecto, crear los packages y los diagramas, que luego generaran las clases Java para llevarlas a tu proyecto eclipse.
Si trabajas con patron MVC, Struts, Spring, u otro modelo de 3 capas te sera util ordenar tu proyecto en packages de implementacion, organizando los manager y los impl tal como spring o struts lo requieren.
Una técnica que utilizo habitualmente cuando tengo que analizar un modelo de negocio u otra implementación, es comenzar diseñando los casos de uso en un package usecase desde el nivel 0 al nivel requerido para el detalle de las funcionalidades.
Argo contiene todos los elementos para los diagramas de casos de uso, diagramas de despliegue, diagramas de clases, diagramas de colaboracion, de secuencia, etc..
Luego con las opciones puedes exportar tu modelamiento a codigo fuente Java para levantarlo desde eclipse.
http://argouml.tigris.org/
Suscribirse a:
Entradas (Atom)