SafeChildren Banner

Havoc Oracle Solaris Experts

miércoles, 28 de julio de 2010

Instalar Apache ActiveMQ en Solaris

Introducción
ActiveMQ es el servidor JMS de Apache. La instalación requiere de la versión Java 1.5, como mínimo, e incorpora un administrador Web <Admin Console> que nos permitirá monitorizar nuestro servidor y realizar algunas tareas sencillas.

Realmente este no es el sitio para <programar en Java utilizando JMS>, pero si que haremos una instalación y configuración del servicio utilizando SMF.


Instalación de Apache ActiveMQ
Lo primero que debemos hacer es comprobar que tenemos los requisitos principales, es decir, JDK 1.5 o superior, si fuese así aquí tenéis Cómo Instalar Java 6 en Solaris 10 en 64bits.
$ which java
/opt/www/jdk1.6.0/bin/java
$ which javac
/opt/www/jdk1.6.0/bin/javac
$ javac -fullversion
javac full version "1.6.0_11-b03"
$ java -fullversion
java full version "1.6.0_11-b03"
$ java -d64 -fullversion
java full version "1.6.0_11-b03"
Recordar que la opción <-d64> es para ejecutar la máquina en 64bits, además la opción <-version> también nos proporcionará los datos necesarios
$ java -d64 -version
java version "1.6.0_11"
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) 64-Bit Server VM (build 11.0-b16, mixed mode)
Una vez verificado que tenemos una versión superior a la 1.5, procederemos a descargar el tar.gz y descomprimirlo en un directorio, por ejemplo en mi caso MQ_HOME será </opt/www/activemq5>

Descarga del Binario de ActiveMQ
Desde la página de Apache podemos descargar la versión que deseemos, pero en mi caso vamos a utilizar la 5.3.2 -que es la última stable-, podeís utilizar el link Página de Descarga ActiveMQ y seleccionar la que prefirais.

UPDATED: Si quieres utilizar la nueva versión 5.4.x, revisa el post de Problemas con ActiveMQ 5.4 en Solaris 10

Creación Usuario, Group y Project
Como siempre vamos a crear un grupo y usuario para poder ejecutar ActiveMQ de forma controlada y utilizaremos un project para gestionar sus recursos.
En nuestro ejemplo, utilizaremos activemq para usuario y group y como project group.activemq, además, como hemos dicho antes, nuestro $MQ_HOME será </opt/www/activemq>
# groupadd activemq
# useradd -g activemq -s /bin/bash -d /export/home/activemq -m -c 'ActiveMQ User' activemq
64 bloques
# projadd -c 'Active MQ JMS Server' -U activemq group.activemq
# cd /opt/www/
# /usr/sfw/bin/wget http://www.eu.apache.org/dist/activemq/apache-activemq/5.3.2/apache-activemq-5.3.2-bin.tar.gz
.. omitimos los mensajes ...
# ls -l apache-activemq-5.3.2-bin.tar.gz
-rw-r--r--   1 root     root     33091364 abr 27 00:25 apache-activemq-5.3.2-bin.tar.gz
# /usr/sfw/bin/gtar zxpf apache-activemq-5.3.2-bin.tar.gz
# mv apache-activemq-5.3.2 activemq5
# chown -R activemq:activemq activemq5
# chmod 750 activemq5

Configuración de Resource Control
Vamos a crear una configuración un poco generalista para nuestro servidor, aunque es recomendable que monitoriceis y la adapteis a vuestras necesidades. 
# projmod -sK 'process.max-file-descriptor=(priv,4096,deny)' group.activemq
# projmod -sK 'task.max-lwps=(priv,100,none),(priv,250,deny)' group.activemq
# projmod -sK 'project.max-tasks=(priv,10,none),(priv,25,deny)' group.activemq
# projmod -sK 'project.cpu-shares=(privileged,175,none)' group.activemq
# projects -l group.activemq
group.activemq
        projid : 110
        comment: "Active MQ JMS Server"
        users  : activemq
        groups : (none)
        attribs: process.max-file-descriptor=(priv,4096,deny)
                 project.cpu-shares=(privileged,175,none)
                 project.max-tasks=(priv,10,none),(priv,25,deny)
                 task.max-lwps=(priv,100,none),(priv,250,deny)
Configuración del servicio mediante Solaris SMF
He creado los archivos manifest y method para Apache ActiveMQ 5.x que podéis descargaros -si no os apetece crearos unos- desde aquí: Manifest Solaris SMF para Apache Active MQ 5.x y Method Solaris SMF para Apache Active MQ 5.x.

Como siempre, he creado dos instancias <default_32bits> y <default_64bits> para que podáis decidir cual ejecutar.

Recordar, que no se pueden ejecutar ambas simultáneamente a menos que asignemos diferentes archivos de configuración.
# cd /var/svc/manifest/application/web
# /usr/sfw/bin/wget http://blog.sfchildren.com/blogger/activemq/solaris-svc/activemq_5.xml
# svccfg
svc:> validate activemq_5.xml
svc:> import activemq_5.xml
svc:> quit
# cd /lib/svc/method
# /usr/sfw/bin/wget http://blog.sfchildren.com/blogger/activemq/solaris-svc/activemq5
# svcs activemq_5
STATE          STIME    FMRI
disabled       18:11:57 svc:/application/web/activemq_5:default32bits
disabled       22:16:50 svc:/application/web/activemq_5:default64bits
# svcadm enable activemq_5:default64bits
# svcs activemq_5
STATE          STIME    FMRI
disabled       18:11:57 svc:/application/web/activemq_5:default32bits
online         22:17:21 svc:/application/web/activemq_5:default64bits




Conclusiones
Hemos visto como podemos instalar de forma sencilla el servidor Apache Active MQ, a partir de ahora, podemos configurar nuestro servidor para adaptarlos a nuestras necesidades.



Referencias

No hay comentarios:

Publicar un comentario en la entrada