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 :
- MySQL 4.1.x
- Java 2 Standard Edition 1.4.2
- Serveur Tomcat Jakarta 5.0.28
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.
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/bin/java -fullversion
java full version "1.4.2_05-b04"
Tomcat Jakarta 5.0.28
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[SRVUNXFR] > cd /Software/apache
apache[SRVUNXFR] > gunzip jakarta-tomcat-5.0.28.tar.gz
apache[SRVUNXFR] > tar xvf jakarta-tomcat-5.0.28.tar
apache[SRVUNXFR] > ln -fs jakarta-tomcat-5.0.28 tomcat-5.0
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ée 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ée 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.).
.profile (user apache)
export JAVA_HOME=/usr/j2se
export CATALINA_HOME=/Software/apache/tomcat-5.0
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
au démarrage du serveur Tomcat.
export CATALINA_OPTS="-Djava.awt.headless=true"
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é.
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 -->
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.xml
<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.
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[SRVUNXFR] > $CATALINA_HOME/bin/startup.sh
Pour arrêter le serveur Tomcat :
apache[SRVUNXFR] > $CATALINA_HOME/bin/shutdown.sh
À 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
.
/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
:
SRVUNXFR% cd /etc/rc0.d
SRVUNXFR% ln -fs ../init.d/catalina K94catalina
Pour le démarrage, le lien est créé dans le répertoire rc3.d
:
SRVUNXFR% cd /etc/rc3.d
SRVUNXFR% 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.
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
.
Installation de QFlex
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)
- Télécharger les librairies
mysql.jar
etjboss-j2ee.jar
et installer ces fichiers dans le répertoire$CATALINA_HOME/common/lib
- Télécharger l’application archive
QFLEX.war
et décompresser avec l’utilitaire solarisunzip
cette archive dans le répertoire$CATALINA_HOME/webapps/QFLEX
(répertoire qui doit être créé au préalable)
apache> cd /Software/apache/tomcat-5.0/webapps/QFLEX
apache> unzip QFLEX.war
apache> rm QFLEX.war
À 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
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://SRVUNXFR: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 SRVUNXFR.
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://SRVUNXFR:8081/QFLEX
).