miércoles, 28 de diciembre de 2011

Error de memoria en Tomcat java.lang.OutOfMemoryError: Java heap space size

Trabajando con un servidor de Tomcat 6.x obtuve ese error y al parecer ha quedado solucionado realizando lo siguiente:

Como antecedente no tengo instalado el Tomcat como servicio, lo tengo montado en un servidor con windows 2003 server y esta trabajando con el archivo startup.bat

El Tomcat tiene montado un sitio que por cuestiones de trabajo durante una temporada aumento su tráfico de red, y como resultado provocó que iniciará a marcar el error de java.lang.OutOfMemory: Java heap space y el servidor se caía o cerraba, de manera que dicho sitio montado quedaba totalmente inutilizable.

Después de buscar información en la red realice lo siguiente:

1. Modificar una línea en Catalina.bat
Esta línea le indicará a la maquina virtual de Java que debe usar más memoria para operar el Tomcat:

Archivo: catalina.bat


if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuli
set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties" -Xms1024m -Xmx1024m -XX:MaxPermSize=128m
:noJuli



NOTA: Lo que esta en color rojo es lo que hay que agregar en caso de que no lo tenga o modificarlo si ya lo tiene en base a la necesidad particular del sitio.

Una vez realizado lo anterior se debe cerrar el Tomcat y volver arrancar el startup.bat.

2. Monitorear el Tomcat
Después de la modificación tenía la inquietud de monitorear el tomcat, entonces para esto, podremos utilizar el jconsole.exe este programa se encuentra como parte de la JDK de Java, yo lo encontre en el directorio c:\program files (x86)\java\jdk1.6.0_03\bin\jconsole.exe al entrar al programa aparece una sección donde se muestran los procesos locales.

Dentro de ese listado he seleccionado el que decía org.apache.catalina.startup.Bootstrap.   

Una vez seleccionado y entrando al servicio aparece una pestaña de Overview y ahí puedes monitorear el Heap Memory Usage, hasta el momento después de lo que he realizado va funcionando bien.



Espero esto te sea de utilidad, te dejo los links que utilice como referencia para este proceso:
http://www.coderanch.com/t/87422/Tomcat/increase-java-heap-size
http://www.elclubdelprogramador.com/2011/10/22/java-monitorizando-con-jmx/




viernes, 2 de diciembre de 2011

Multiples Calendarios de Google Calendar en el iPad/iPhone

Para compartir el calendario en el iPad que viene por defecto no es problema incluso solo hay que escoger  desde ajustes, correo contactos y calendarios, la opción añadir cuenta y marcar Gmail desde ahí colocar que queremos compartir correo, calendarios y notas y ya esta.

Pero ... si necesitamos varios calendarios de la misma cuenta de google calendar es otro procedimiento...

Para compartir varios calendarios en el iPad del Google Calendar se tiene que hacer manualmente utilizando una url (trate de utilizar m.google.com/sync, pero algo sucede que la página dice que mi dispositivo no es compatible) por lo que entonces segui este procedimiento (desconozco si funcione en iPhone, pero por lo pronto me funciono muy bien en el iPad):

  1. Entrar a Ajustes.
  2. Posteriormente donde dice Correo, contactos, calendarios
  3. Utilizar la opción que dice Añadir cuenta...
  4. Ahi seleccionaremos en donde dice Otras
  5. Posteriormente escogemos la opción Añadir cuenta CalDAV
  6. Nos pedirá los siguientes datos:
    1. Servidor: www.google.com
    2. Usuario: micuenta@gmail.com
    3. Contrasela: tucontraseña
    4. Descripción: elcalendarioquequierover
  7. Posteriormente dar clic en siguiente.
  8. Hasta aquí solo tomará el calendario por omisión que tenemos en google calendar. 
  9. En este punto es donde viene la magia:
  10. Entrar al Google Calendar (en el browser de la computadora), y acceder a la Configuración de Calendarios (Generalmente viene un engrane en la parte superior derecha).
  11. Dentro de esta sección entrar a la pestaña de Calendarios.
  12. Una vez que podamos ver el listado de calendarios, daremos clic sobre el calendario que nos interesa acceder.
  13. Se mostrarán los detalles del calendario, ahí localizaremos la dirección del calendario que generalmente es del tipo: ID de Calendar: 3st0snum3r0ss0nun3jempl03jempl0@group.calendar.google.com
  14. Una vez localizado esta cuenta entonces tomaremos el dato del ID 3st0snum3r0ss0nun3jempl03jempl0  antes del @group.calendar.google.com
  15. Bien ahora regresaremos al iPad, vamos a dar clic en el Calendario Nuevo que agregamos que va tener el nombre que pusimos en la descripción (recuerdan elcalendarioquequierover).
  16. Al presionar sobre el nombre del calendario se abrira una pantalla con los datos que habiamos capturado.
  17. En esta ocasión entraremos en donde dice Ajustes avanzados y vamos a cambiar lo que dice en URL de la cuenta, colocando la siguiente:
    1. https://micuenta%40gmail.com@www.google.com:443/calendar/dav/3st0snum3r0ss0nun3jempl03jempl0%40group.calendar.google.com/user/
  18. Como podemos ver es claro que debemos cambiar donde dice micuenta y los otros números en negrita que obtuvimos del google calendar cuando accedimos a la configuración, una vez realizados los cambios sobre esa url como por arte de magia queda listo incluso toma el calendario toma color que esta configurado en el google calendar.
Espero les sirva a mi si que me ha servidor, pueden hacerlo también con iCloud, pero esto es por si quieren hacerlo directo con google calendar.

Saludos


------------------- Actualización 25/03/2013

Parece que ha habido cambios en las últimas versiones de iOS por lo que te sugiero en caso de que algún calendario no aparezca correctamente seguir esta liga:
http://www.applesfera.com/aplicaciones-os-x-1/como-configurar-y-sincronizar-correctamente-los-calendarios-delegados-de-google-calendar-en-ios-y-os-x


Espero te sea de utilidad !