SafeChildren Banner

Havoc Oracle Solaris Experts

jueves, 16 de septiembre de 2010

Problemas ActiveMQ 5.4 en Solaris 10

Introducción
Mientras hablábamos de Cómo Instalar Apache ActiveMQ 5.x en Solaris 10, desde Apache han liberado una nueva versión, la 5.4. En esta han introducido algunos cambios, principalmente en los scripts de arranque. Esto hace que las definiciones de los method para ActiveMQ que habíamos creado, ya no funcionen correctamente.

Nuevo formato Script ActiveMQ
El nuevo formato de script acepta más parámetros, y ahora podemos utilizar para iniciar, detener, verificar mensajes, eliminar mensajes, entre otros

El formato es el siguiente
$ACTIVEMQ_HOME/bin/activemq [tarea] [opciones-tarea] [datos-tarea]
Y las tareas disponibles son las siguientes:
  •     start. Crea he inicia el broker
  •     create. Crea una instancia en el path especificado
  •     stop. Detiene el broker
  •     list. Muestra los brokes que hay disponibles
  •     query. Consulta una propiedad de un broker
  •     browse. Muestra los mensajes de un broker
  •     journal-audit. Muestra los mensaje almacenados en el storage area
  •     purge. Borra los destinos seleccionados
Problemas con el script y nuestro method
El principal problema de nuestro method para ActiveMQ 5.3.x viene por el nuevo formato, que ahora es necesario introducir un nuevo parámetro <task>, como hemos visto antes, que nos permitirá realizar diferentes acciones.

Cuando diseñe el method, el script <activemq> no tenía estos parámetros, y por lo tanto, no funcionaba. Para ello, he creado una nueva versión de Solaris SMF Method para ActiveMQ 5.4.x que, simplemente modifica los parámetros de inicio. Así mismo, el manifest para ActiveMQ 5.4 también lo he modificado para que pueda adaptarse a estas nuevas funcionalidades.

Para evitar, tener problemas con mi instalación de ActiveMQ 5.3.x, hemos definido un nuevo ACTIVEMQ_HOME para la instalación ActiveMQ 5.4 que corresponde a </opt/www/activemq5.4> pero puedes asignar la que quieras.

Aplicar el parche de <$ACTIVEMQ/bin/activemq>
He creado un pequeño parche que soluciona los problemas para poder ejecutarlo dentro de nuestra instalación de Solaris.

Básicamente, el problema viene por el uso del comando <whoami> que, como recordáis durante la Instalación de Hadoop en Solaris 10, también nos sucedía, y por el uso de la opción <-q> -quiet- del comando <grep> que en SRV no está definida.
 
Para aplicarlo, simplemente deberemos descargarnos el parche para Solaris 10 de ActiveMQ 5.4 y ejecutar el comando <patch> de la siguiente forma:
# cd $ACTIVEMQ_HOME
# cd bin
# /usr/sfw/bin/wget http://blog.sfchildren.com/blogger/activemq/5.4/activemq.patch
# patch activemq-test < activemq.patch
  Parece un diff normal.
terminado
Para aquellos que no os apetezca parchear os he dejado una versión Parcheada para Solaris 10 del script que simplemente deberéis remplazar la que viene con la distribución de Apache por esta.

Conclusiones
A veces, los cambios pueden ocasionarnos problemas, por eso, es muy recomendable utilizar un entorno de pruebas donde hagamos todos los cambios, y una vez validados, poderlos pasar a producción.

Además, como no son muy complejos, podemos continuar con nuestra serie de Instalación y Configuración de ActiveMQ 5.x en Solaris 10

Referencias

No hay comentarios:

Publicar un comentario en la entrada