Notes Importantes
:
1.
Avant de
commencer, copiez les libraires de Joram (présentes
dans le répertoire lib) dans le répertoire lib
du TP : cp -r lib tp-jms
2.
Toutes les
commandes doivent être exécutées à partir du répertoire d’installation du TP – tp-jms : cd tp-jms. Le fichier build.xml
doit se trouver dans ce répertoire.
Pour compiler tous les fichiers Java du répertoire tp-jms, utilisez la commande :
ant compile
Note : afin
d’effacer les classes Java déjà existantes, vous pouvez utiliser la
commande :
ant clean compile
Attention : si le
serveur JMS est en train de s’exécuter, cette commande va donner une erreur car
certains répertoires (ex : run) sont utilisé par
le serveur et donc ils ne peuvent pas être effacés.
Pour démarrer le serveur
JMS (en utilisant le fichier de configuration config/centralized_a3servers.xml) utilisez la commande :
ant single_server
-Dsid=<l’id
de votre serveur>
ex : ant single_server
-Dsid=0111
Note : vous pouvez
visualiser l’exécution du serveur JMS via la console graphique du service
JMX :
jconsole
Note : vous pouvez
vérifier la bonne configuration des ports du service de nommage et du TCP proxy
en utilisant la commande netsat :
netstat –anp | grep <le_port>
ex : netstat –anp | grep
16111
ex : netstat –anp | grep
15111
Pour exécuter le fichier
de configuration d’administration du serveur JMS (joramAdmin_TP.xml), utilisez la commande :
ant adminxml
Pour exécuter les classes
Java (ex : Sender, Browser, Receiver, Listener ou TopicSelectors),
utilisez les commandes suivantes :
Sender :
ant sender -Ddestination=<destination> -Dcount=<count>
-
<destination>
= le nom de la destination (ex : queue ou topic)
vers laquelle le Sender va envoyer les messages
-
<count>
= le nombre de messages à envoyer
Ex: ant sender
-Ddestination=queue1 -Dcount=9
Quelques Exceptions possibles :
·
javax.naming.NoInitialContextException: Need to specify class name in environment or system property,
or as an applet parameter, or in an application resource file: java.naming.factory.initial
…
o
Cause :
on ne trouve pas, ou on ne peut pas accéder au fichier jndi.properties
o
Solution :
assurez-vous que le fichier jndi.properties se trouve
dans le répertoire run du tp-jms. Normalement, ce fichier est copié dans le répertoire run lors du démarrage du serveur JMS avec la commande ant single_server
·
javax.naming.NameNotFoundException
at fr.dyade.aaa.jndi2.client.NamingContextImpl.lookup(NamingContextImpl.java:126)
at javax.naming.InitialContext.lookup(InitialContext.java:409)
at Sender.main(Sender.java:46)
…
o
Cause :
la destination donnée en paramètre ne peut pas être trouvée
o
Solutions :
i.
vérifiez la
syntaxe du nom de destination donnée en paramètre
ii.
vérifiez la
présence de la destination indiquée dans le serveur Joram,
en utilisant la jconsole. Si la destination n’existe
pas, assurez-vous d’avoir correctement configuré et exécuté le fichier
d’administration joramAdmin_TP.xml
Browser :
ant browser -Dqueue=<queue_name>
<queue_name> = le nom de la file
(« queue ») que le Browser va inspecter
Ex : ant browser -Dqueue=queue1
Receiver :
ant receiver -Ddestination=<destination> [-Dcount=<count>]
<destination>
= l’endroit où le Receiver lit et prend les messages
<count>
(paramètre optionnel) = le nombre de messages que le Receiver
va lire et prendre de <destination>
Ex: ant receiver
-Ddestination=queue1 -Dcount=9
Listener :
ant listener -Ddestination=<topic_name>
<topic_name> = nom du thème (« topic ») auquel le Listener s’abonne
Ex : ant listener
-Dtopic=topic1
TopicSelectors :
ant topicSelectors -Dtopic=<topic_name>
<topic_name> = le nom du thème (« topic ») utilisé pour la distribution de messages
Note : la file de
control utilisée est enregistrée dans le service JNDI sous le nom :
« queue1 »
Ex : ant topicSelectors
-Dtopic=topic1
Pour arrêter le serveur
JMS, il suffit d’utiliser la combinaison de touches Ctrl+C dans la fenêtre où le serveur a été démarré.