jueves, 31 de julio de 2008

Tomcat y su memoria

Hoy hemos tenido una situación un poco molesta: un mailing masivo de un cliente ha tenido la web a punto de caerse durante media mañana. Y es que la aplicación necesita una cantidad bestial de memoria... y no la tenía asignada.

Simplemente he tenido que cambiar este parámetro, y la cosa ha ido mucho más fluida.

Así que si alguna vez tenéis que hacerlo, ahí va el cómo.

El parámetro a modificar es Xmx, y hay que modificarlo desde el binario que arranca el demonio (en linux). Es simplemente localizarlo y cambiar el valor que tiene a continuación

Servidor:/var/lib/tomcat5/conf# grep -ir Xmx /etc/init.d/tomcat5
CATALINA_OPTS="-Djava.awt.headless=true -Xmx128M"

En mi caso (es la configuración por defecto) estaba a 128Mb. Y lo he subido a 512.

Pues nada, después de hacer la modificación reiniciamos el tomcat (no vale un reload porque sólo carga la configuración, no para y arranca el proceso) y ya lo tenemos.
Ah! y además de verse en el script, también se ve con un ps:

Servidor:/var/lib/tomcat5/conf# ps aufx | grep tomcat

tomcat5 17124 0.0 0.0 7696 1768 pts/0 S 11:27 0:00 \_ /usr/sbin/rotatelogs /var/lib/tomcat5/logs/catalina_%F.log 86400
tomcat5 17131 73.5 6.1 721564 130332 pts/0 Sl 11:27 0:16 /usr/local/jdk1.6.0_04/bin/java -Djava.awt.headless=true -Xmx512M-Djava.endorsed.dirs=/usr/share/tomcat5/common/endorsed -classpath /usr/local/jdk1.6.0_04/lib/tools.jar:/usr/share/tomcat5/bin/commons-launcher.jar:/usr/share/tomcat5/bin/commons-logging-api.jar:/usr/share/tomcat5/bin/jmx.jar:/usr/local/jdk1.6.0_04/jre//lib/jcert.jar:/usr/local/jdk1.6.0_04/jre//lib/jnet.jar:/usr/local/jdk1.6.0_04/jre//lib/jsse.jar:/usr/share/tomcat5/bin/bootstrap.jar:/usr/share/tomcat5/bin/commons-logging-api.jar -Djava.security.manager -Djava.security.policy==/var/lib/tomcat5/conf/catalina.policy -Dcatalina.base=/var/lib/tomcat5 -Dcatalina.home=/usr/share/tomcat5 -Djava.io.tmpdir=/var/lib/tomcat5/temp org.apache.catalina.startup.Bootstrap start


Ah, por cierto, al igual que hay una variable para la memoria máxima que puede asignarse a tomcat para que la utilice, también hay una memoria mínima. La variable es Xms.

martes, 29 de julio de 2008

Cómo registrar una librería (.DLL) en Windows

Hay veces, por motivos varios y diferentes cada uno de ellos, que necesitamos registrar (o "desregistrar") una librería concreta. No basta con moverla o borrarla ya que Windows sigue pensando que está ahí y la va a buscar.

¿Qué hacer en esos casos? Pues es muy sencillo.

Desde la línea de comandos (Inicio --> Ejecutar --> cmd --> intro, se abre la ventana de MS-DOS), ejecutamos

regsvr32 X:/ruta/a/la/libreria.dll

y hecho ;)

Además de registrarla, podéis decirle al sistema que la "descargue", que no la tenga en memoria. La opción para ello es -u (undo):

regsvr32 -u X:/ruta/a/la/libreria.dll

Y si lo que queremos es que no nos muestre ningún mensaje durante/al finalizar el registro, la opción es -s (silent):

regsvr32 -s X:/ruta/a/la/libreria.dll

Y ya está :)

viernes, 25 de julio de 2008

Logs en Microsoft Exchange Server 2007

¿Dos entradas en dos días? Cómo es eso??? Pues nada, yo, que pasaba por aquí :)

Es una tontería, supongo que como ayer, que me irá muy bien para tenerlo en cuenta en otro momento.
Parece ser que el Exchange 2007 es un poco diferente a sus versiones anteriores, pero por lo que he visto yo, la verdad es que está hecho más cara a que lo administre un usuario que otra cosa. Bastante sencillito y claro, al menos en lo que se refiere a los logs.

Para verlos, la cosa es muy fácil.

Abrimos la Consola de Administración de Exchange (en Inicio --> Programas --> Microsoft Exchange Server 2007), y en el menú de la izquierda vamos a Cuadro de Herramientas. Buscamos Seguimiento de mensajes y hacemos doble click para entrar. Se abre otra ventana donde primero comprueba que estén instaladas las actualizaciones necesarias (podemos cancelar la comprobación si queremos) y luego nos sale un enlace que dice Ir a la Pantalla de Bienvenida. Al hacer click, nos lleva a la página de Parámetros de Seguimientos de Mensajes, donde tendremos que jugar con todos los parámetros para hacer las búsquedas en los logs que necesitemos.

Tenemos las siguientes categorías para filtrar los logs:
Destinatario
Remitente
Servidor
EventID
MessageID
InternalMessageID
Asunto
Referencia
Inicio
Fin
donde las únicas categorías obligatorias son las dos últimas y el EventID (qué tipo de categoría: error, entrada de correo, salida de correo...)

La verdad es que es una interfaz muy amigable, y es muy cómodo trabajar con ella, aunque yo siga prefiriendo mi terminal, con mis letras en verde y amarillo, fondo negro semitransparente y el logo de Debian en el fondo...


Así da gusto trabajar

jueves, 24 de julio de 2008

Problemas con Httpd en Red Hat

Cuánto tiempo sin postear nada!!!
Ha sido una larga temporada, muchos cambios, mucho trabajo y muchos viajes... pero a ver si puedo ir posteando poquito a poco.


Esta vez vengo con una solución que podría haberme llevado muchas horas, pero con la que he dado pronto... afortunadamente.

He montado un servidor de hosting con Red Hat (sí, en el trabajo estamos cambiando a Red Hat), y me da problemas el httpd. Al arrancarlo, me da el siguiente error:

[warn] _default_ VirtualHost overlap on port 80, the first has precedence

El apache arrancaba sin problemas, pero no se cargaba bien la configuración. Tenía definidos varios Virtualhosts, pero parece que sólo se había cargado el primero. El resto redirigían a éste, como si no estuvieran configurados.

Después de hacer varios cambios en la configuración de las directivas de apache, he dado con el problema :)
Simplemente, he descomentado la siguiente línea:

NameVirtualHost *:80

y el resto es historia!
El apache se ha levantado, ha cargado todos los hosts virtuales y funciona a las mil maravillas...