User Tools

Site Tools


wiki:epims4_0m2:developer:jms

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
wiki:epims4_0m2:developer:jms [2008/04/03 16:13]
dupierris created
wiki:epims4_0m2:developer:jms [2008/10/02 10:21] (current)
Line 7: Line 7:
 Le provider JMS inclus dans Geronimo est ActiveMQ. On définit les //​ressources JMS // dans la console de Geronimo. Ces ressources sont ensuite référencées,​ notamment via JNDI, dans les applications (J2EE déployées sur Geronimo ou même standalone externe). Le provider JMS inclus dans Geronimo est ActiveMQ. On définit les //​ressources JMS // dans la console de Geronimo. Ces ressources sont ensuite référencées,​ notamment via JNDI, dans les applications (J2EE déployées sur Geronimo ou même standalone externe).
  
-Voici le lien entre les différentes ​ressources / références+=== Configuration et liens entre ressources/​références ​=== 
  
 __Ressources Geronimo__ __Ressources Geronimo__
Line 44: Line 45:
     * accès à l'​objet Queue via le nom physique : ''​PhysNameQueue''​ par exemple (1c)     * accès à l'​objet Queue via le nom physique : ''​PhysNameQueue''​ par exemple (1c)
  
-   +{{ .:​jmslinks.png }} 
 + 
 +=== Tests réalisés === 
 + 
 +  * Il est nécessaire que la référence du message dans web.xml (3)  soit celle utilisée dans le code 
 +  * Si on utilise un physicalName <> nom de l'​objet Queue dans Geronimo, c'est le physicalname qui doit être utilisé dans les applications standalone ​ mais c'est le nom qui doit être spécifié dans l'​application web 
 +  * Un physical name doit obligatoirement être spécifié ! 
 + 
 +Le workspace Eclipse utilisé pour les tests est sauvegardé (pour le laboratoire EDyP) dans Informatique/​Gestion de Projets/​ePims/​Developpement 
 + 
 + 
 +=== Problème avec JmsTemplate === 
 + 
 +L'​utilisation de la classe JmsTemplate de Spring semble poser des problèmes lors de l'​envoi/​réception de messages dans des TOPIC. Tout est OK pour les QUEUE. 
 + 
 +**Configuration :**  
 +  * application standalone définissant deux beans Spring 
 +    - TopicListener implémentant MessageListener et initialisé pour écouter le Topic d'​intérêt  
 +    - TopicReceiver ayant comme propriété JmsTemplate et une méthode qui exécute JmsTemplate .receive(le Topic d'​intérêt) 
 +  * librairie embarquée dans Geronimo définissant les beans  
 +    - SampleService qui envoie un message au Topic d'​intérêt via JmsTemplate 
 +    - SampleServiceWOTemplate qui envoie un message au Topic d'​intérêt via un MessageProducer 
 +  * application web définissant les servelts : 
 +    - SendTopic : utilisation du bean SampleServiceWOTemplate de la librairie pour l'​envoie de message 
 +    - SendTopic2 : utilisation du bean SampleService de la librairie pour l'​envoie de message 
 +  
 +**Comportement :**  
 +  * Lors de l'​envoie de message via SendTopic2 seul le TopicReceiver reçoit le message 
 +  * Lors de l'​envoie de message via SendTopic seul le TopicListener reçoit le message et éventuellement des outils extérieur tel que Hermes.... 
 + 
 +En d'​autre termes les "​listeners"​ utilisant JmsTemplate ne reçoivent des messages que des "​senders"​ utilisant Jms Template et inversement;​ les messages émis par des "​senders"​ utilisant JmsTemplate ne sont reçu que par des "​listeners"​ utilisant JmsTemplate. 
 + 
 +**Solution :**  
 +Dans un premier temps (?), nous n'​allons pas utiliser le JmsTemplate de Spring afin d'​éviter ces problèmes.... Des tests devront/​pourront être faits pour tenter d'​élucider ce problème !  
 +Les articles suivants sont à conserver sous le coude : 
 + ​http://​activemq.apache.org/​spring-support.html 
 + ​http://​activemq.apache.org/​jmstemplate-gotchas.html 
 + 
 + 
 + 
wiki/epims4_0m2/developer/jms.1207232011.txt.gz · Last modified: 2008/09/24 15:35 (external edit)