Installation de QFlex en environnement Solaris


1- Introduction

Cet article présente l'installation de Qflex en environnement Solaris. QFLex est un outil de monitoring pour MQ Series.

Les composants ci-dessous sont nécessaires :

2- Installation des pré-requis pour Qflex : Java 1.4.2 SDK et Tomcat Jakarta 5.0.28

Dans cette documentation, le serveur MySQL QFX_P1_MYS est déjà prêt sur le serveur Solaris et ce dernier écoute sur le port 40102.

2-1- Java 1.4.2 SDK

La commande pkginfo (en tant que root) permet de vérifier si le package Java 1.4.2 SDK est déjà présent sur la machine :

% pkginfo | grep -i 'J2SDK 1.4'
system         SUNWj3dev        J2SDK 1.4 development tools
system         SUNWj3dmo        J2SDK 1.4 demo programs
system         SUNWj3dvx        J2SDK 1.4 development tools (64-bit)
system         SUNWj3man        J2SDK 1.4 man pages
system         SUNWj3rt        J2SDK 1.4 runtime environment
system         SUNWj3rtx        J2SDK 1.4 runtime environment (64-bit)

Dans le cas ici, la machine Java 1.4.2 SDK est déjà installée, si ce n'est pas le cas, télécharger les packages pour Solaris 2.9 sur le site http://java.sun.com.

Par défaut, avec les packages Java pour Solaris, l'installation se fait dans le répertoire /usr/j2se et pour récupérer la version exacte de la machine Java 1.4.2 SDK :

% /usr/j2se/java/bin -fullversion
java full version "1.4.2_05-b04"

2-2- Tomcat Jakarta 5.0.28

2-2-1- Téléchargement et installation

Tomcat Jakarta 5.0 est un serveur J2EE (servlets, jsp et EJB) open source (site web : http://jakarta.apache.org)

Pour télécharger la version Unix de Tomcat Jakarta 5.0.28, télécharger le fichier jakarta-5.0.28.tar.gz dans la rubrique 5.0.28 > Binary distributions > Core > tar.gz à la page http://tomcat.apache.org/download-55.cgi.

Dans la suite de l'installation, le serveur Tomcat est installé dans le répertoire /Software/apache/tomcat-5.0, le répertoire /Software/apache appartenant à l'utilisateur Unix Apache.

apache@SRVUNXFR1 > cd /Software/apache
apache@SRVUNXFR1 > gunzip jakarta-tomcat-5.0.28.tar.gz
apache@SRVUNXFR1 > tar xvf jakarta-tomcat-5.0.28.tar
apache@SRVUNXFR1 > ln -fs jakarta-tomcat-5.0.28 tomcat-5.0

2-2-2- Variables JAVA_HOME et CATALINA_HOME

Le serveur Tomcat a besoin de connaître la localisation de Java 1.4.2 SDK à travers la variable JAVA_HOME, aussi le fichier .profile du user apache est modifié afin de référencer Java 1.4.2 SDK avec la variable JAVA_HOME=/usr/j2se.

La variable CATALINA_HOME qui identifie le répertoire d'installation de Tomcat 5.0.28 (/Software/apache/tomcat-5.0) est également implémenté dans le fichier .profile du user apache. Cette variable permet de simplifier l'administration du serveur Tomcat 5.0 (arrêt, démarrage, relance etc…).

Fichier .profile du user apache :

export JAVA_HOME=/usr/j2se
export CATALINA_HOME=/Software/apache/tomcat-5.0

2-2-3- Variables JAVA_OPTS et CATALINA_OPTS

Pour éviter une erreur 'Out of Memory' pour le serveur Tomcat, la mémoire minimale et maximale de la machine virtuelle Java JVM est fixée entre 100 MB et 800 MB avec respectivement les options -Xms et -Xmx.

Ces options sont appliquées dans la variable d'environnement JAVA_OPTS dans le fichier .profile du user apache pour une prise en compte automatique :

export JAVA_OPTS="-Xms100m -Xmx800m"

QFLex utilise Jfree, une librairie Java pour la gestion des graphiques et pour l'interaction entre les polices Solaris (fonts) et Jfree, l'option -Djava.awt.headless=true doit être appliquée au démarrage du serveur Tomcat. Cette option est appliquée dans la variable d'environnement CATALINA_OPTS dans le fichier .profile du user apache. Les options dans la variable CATALINA_OPTS sont automatiquement prises en compte dans le démarrage du serveur Tomcat.

export CATALINA_OPTS="-Djava.awt.headless=true"

2-2-4- Les fichiers server.xml et server-minimal.xml (modification des ports)

En environnement Unix/Linux, les fichiers server.xml et server-minimal.xml livrés dans le répertoire $CATALINA_HOME/conf contiennent le paramétrage des ports et notamment le port d'écoute du serveur Tomcat.

Par défaut, le port du serveur Tomcat est 8080 mais il se peut que ce dernier soit déjà pris par un autre process.

Il est fortement recommandé avant toute tentative de démarrage d'utiliser la commande netstat unix pour vérifier que tous les ports spécifiés dans les fichiers de configuration server.xml et server-minimal.xml ne sont pas déjà occupés :

apache >netstat -a | grep '8080'
*.8080         *.*         0         0         49152         0         LISTEN

Dans le cas pratique ici, le port d'écoute 8080 est déjà pris. Aussi la valeur 8080 est remplacée par la valeur 8081 dans les fichiers server.xml et server-minimal.xml, le port 8081 n'étant pas déjà occupé.

Exemple : fichier server.xml

<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
  <Connector port="8081"
      maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
      enableLookups="false" redirectPort="8443" acceptCount="100"
      debug="0" connectionTimeout="20000"
      disableUploadTimeout="true" />
<!-- Note : To disable connection timeouts, set connectionTimeout value to 0 -->

2-2-5- Le fichier tomcat-users.xml (gestion des utilisateurs)

En environnement Unix/Linux, le fichier tomcat-users.xml livré dans le répertoire $CATALINA_HOME/conf est incomplet et doit être modifié, en effet les rôles admin et manager et le user admin appartenant aux rôles manager et admin ne sont pas référencés dans le fichier tomcat-users.xml

Il faut ajouter des lignes et remplacer

<tomcat-users>
        <role rolename="tomcat"/>
        <role rolename="role1"/>
        <user username="tomcat" password="tomcat" roles="tomcat"/>
        <user username="role1" password="tomcat" roles="role1"/>
        <user username="both" password="tomcat" roles="tomcat,role1"/>
</tomcat-users>

par

<tomcat-users>
        <role rolename="tomcat"/>
        <role rolename="role1"/>
        <role rolename="manager"/>
        <role rolename="admin"/>
        <user username="tomcat" password="tomcat" roles="tomcat"/>
        <user username="role1" password="tomcat" roles="role1"/>
        <user username="both" password="tomcat" roles="tomcat,role1"/>
        <user username="admin" password="******" roles="manager,admin"/>
</tomcat-users>

C'est notamment dans ce fichier tomcat-users.xml que l'on précise le mot de passe du compte admin pour gérer le serveur Tomcat.

2-2-6- Démarrage et arrêt du serveur Tomcat

Le répertoire $CATALINA_HOME/bin contient les shells startup.sh et shutdown.sh qui sont largement suffisants pour gérer les arrêts et démarrages du serveur Tomcat.

Pour démarrer le serveur Tomcat :

apache@SRVUNXFR1 > $CATALINA_HOME/bin/startup.sh

Pour arrêter le serveur Tomcat :

apache@SRVUNXFR1 > $CATALINA_HOME/bin/shutdown.sh

A l'issue de l'installation du serveur Tomcat, il ne faut pas oublier de référencer ces shells d'arrêt et de démarrage du serveur Tomcat dans les services Solaris /etc/rcx.d.

A titre d'exemple : en tant que root, le shell de service de démarrage/arrêt du serveur Tomcat peut être installé dans le répertoire /etc/init.d, ce shell n'accepte que les paramètres start ou stop et s'appelle catalina.

Fichier /etc/init.d/catalina

#!/bin/sh
#
# Startup for Catalina
#
CATALINA_HOME=/Software/apache/tomcat-5.0

case $1 in
'start')
        su - apache -c "$CATALINA_HOME/bin/startup.sh" > /dev/null 2>&1
        ;;

'stop')
        su - apache -c "$CATALINA_HOME/bin/shutdown.sh" > /dev/null 2>&1
        ;;

*)
        echo "Usage: /etc/init.d/catalina { start | stop }"
        ;;
esac

Pour l'arrêt, le lien est créé dans le répertoire rc0.d :

SRVUNXFR1# cd /etc/rc0.d
SRVUNXFR1# ln -fs ../init.d/catalina K94catalina

Pour le démarrage, le lien est créé dans le répertoire rc3.d :

SRVUNXFR1# cd /etc/rc3.d
SRVUNXFR1# ln -fs ../init.d/catalina S94catalina

Pour vérifier que le serveur Tomcat fonctionne :

http://<host>:8081/

L'adresse http://<host>:8081/admin dirige l'utilisateur vers les pages d'administration du serveur Tomcat.

Problème à l'arrêt : Des problèmes de libération de mémoire et du fichier de log peuvent apparaître lors de l'arrêt du serveur Tomcat, en effet des process apache /usr/j2se/bin/java -Djava.awt.headless=true peuvent demeurer actifs malgré la commande $CATALINA_HOME/bin/shutdown.sh. Aussi est-il préférable de renforcer l'arrêt du serveur Tomcat en lançant des commandes kill -9 sur tous les process apache avec la ligne de commandes usr/j2se/bin/java -Djava.awt.headless=true.

3- Installation de QFlex

3-1- Installation de l'application QFlex dans le serveur Tomcat

L'installation de QFlex est alors très simple (site web : http://www.netflexity.com/Downloads.shtml)

apache > cd /Software/apache/tomcat-5.0/webapps/QFLEX
apache > unzip QFLEX.war
apache > rm QFLEX.war

A l'issue de ces opérations il ne reste plus qu'à redémarrer le serveur Tomcat 5.0 si ce dernier est encore actif. La suite de la configuration s'effectue graphiquement grâce à la console d'administration du serveur Tomcat.

apache > $CATALINA_HOME/bin/shutdown.sh
apache > $CATALINA_HOME/bin/startup.sh

3-2- Configuration de QFlex via la console d'administration du serveur Tomcat

Pour accéder à la console d'administration du serveur Tomcat : http://<host>:<port>/admin. Dans notre configuration : http://SRVUNXFR1:8081/admin

L'administrateur est le user admin et son mot de passe est celui appliqué précédemment dans le fichier tomcat-users.xml .

Il ne reste plus qu'à renseigner les paramètres de connexion à la base de données MySQL QFX_P1_MYS. Pour cela se rendre au sous menu « Data Sources » pour l'application QFLEX comme le montre le schéma ci-dessous :

(si l'application QFLEX n'apparaît pas, une erreur s'est produite lors de l'installation de l'archive QFLEX.war)

Cliquer ensuite sur le lien jdbc/QFLEX dans la page de droite afin de renseigner les paramètres de connexion à la base qflex localisée dans le serveur MySQL QFX_P1_MYS qui écoute sur le port 40102 sur la machine SRVUNXFR1 (si jdbc/QLFEX n'apparaît pas, la librairie mysql.jar n'a pas été installée correctement dans le répertoire $CATALINA_HOME/common/lib) :

Enregistrer ensuite les informations en cliquant sur « Save », puis « Commit Changes ».

Redémarrer le serveur Tomcat pour définitivement valider les modifications.

QFlex est alors opérationnel à l'adresse http://<host>:<port>/QFLEX (http://SRVUNXFR1:8081/QFLEX).


Annexe

Historique

Version Date Commentaires
1.0 11/2005 Version initiale
1.1 08/2006 Options JAVA_OPTS et CATALINA_OPTS, problème à l'arrêt du serveur Tomcat.

Liens

NetFlexity
Apache HTTP Server Project
Apache Tomcat Jakarta