Envoi de messages dans une application JMS
Pour qu'une application JMS puisse envoyer des messages à une destination, elle doit d'abord créer un objet MessageProducer pour la destination. Pour envoyer un message à la destination, l'application crée un objet Message, puis appelle la méthode send () de l'objet MessageProducer .
MessageProducer producer = session.createProducer(destination);
Le paramètre destination est un objet de file d'attente ou de rubrique que l'application a créé précédemment.- Octets
- Mappe
- Objet
- Flux
- Texte
TextMessage outMessage = session.createTextMessage(outString);
Pour plus d'informations sur les messages et les corps de message, voir Messages JMS.producer.send(outMessage);
Une application peut utiliser la méthode send () pour envoyer des messages dans l'un ou l'autre domaine de messagerie. La nature de la destination détermine le domaine de messagerie utilisé. Cependant, TopicPublisher, la sous-interface de MessageProducer spécifique au domaine de la publication/abonnement, possède également une méthode publish(), qui peut être utilisée à la place de la méthode send(). Les deux méthodes sont fonctionnellement identiques.
Une application peut créer un objet MessageProducer sans destination spécifiée. Dans ce cas, l'application doit spécifier la destination lors de l'appel de la méthode send ().
Si une application envoie un message dans une transaction, le message n'est pas distribué à sa destination tant que la transaction n'est pas validée. Cela signifie qu'une application ne peut pas envoyer de message et recevoir une réponse au message dans la même transaction.
Une destination peut être configurée de sorte que lorsqu'une application lui envoie des messages, IBM MQ classes for JMS réachemine le message et renvoie le contrôle à l'application sans déterminer si le gestionnaire de files d'attente a reçu le message en toute sécurité. Cette opération est parfois appelée insertion asynchrone. Pour plus d'informations, voir Insertion de messages de manière asynchrone dans IBM MQ classes for JMS.