JMS

JMS, (Java Message Service), est la spécification de Sun pour la gestion des messages de la plate-forme Java EE

... et Geronimo

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).

Configuration et liens entre ressources/références

Ressources Geronimo

Application EAR

   <nam:resource-ref>
      <nam:ref-name> jms/epims </nam:ref-name>            (2)
      <nam:resource-link> epims_cf </nam:resource-link>  (1b)
   </nam:resource-ref>
   <message-destination-ref>
      <message-destination-ref-name> MyRefQueue </message-destination-ref-name>    (3)
      <message-destination-type>javax.jms.Queue</message-destination-type>
      <message-destination-usage>Produces</message-destination-usage>
      <message-destination-link>QueueDiffPN</message-destination-link>             (1c)
   </message-destination-ref>

Tests réalisés

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 :

Comportement :

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