En fait, JBoss envoie le message, mais seulement lorsque la transaction en cours démarrée par l'EJB est terminée.JBoss n'envoie pas de message JmsTemplate (Spring)
Nous avons ce problème avec JBoss 4.0.3 et JmsTemplate de Spring. Un EJB envoie un message à une file d'attente avec une file d'attente temporaire en tant que champ reply_to. Ensuite, à l'intérieur de la même transaction, nous écoutons la réponse donnée par le premier MDB. Le problème est que la méthode "send" de JmsTemplate n'est pas exécutée une fois la transaction terminée. Ainsi, au moment où le message est envoyé à la file d'attente et traité par la MDB, l'écouteur de la file d'attente temporaire est parti.
Ceci est appelé "Réception synchrone"
Deux choses changent ce comportement, mais soulève certaines préoccupations:
Changer le type de transaction de l'EJB à BMT. (Préoccupation: BMT suce)
Créez un thread tout ce qu'il fait est d'appeler la méthode JmsTemplate.send().
Comme une note de côté, c'est un EJB qui fonctionne correctement sur un environnement weblogic, et le message ne sont envoyés quand il se doit, au milieu de la transaction pas quand il est fini.
Merci pour toute aide.
Ce comportement est le même sur toutes les versions JBoss que j'ai testées: 4.2, 5.0 et 5.1 – Eldelshell