48
Plan Introduction JMS Communication par messages Michel Riveill Université de Nice - Sophia Antipolis 3 octobre 2008 Michel Riveill Communication par messages

Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

Communication par messages

Michel Riveill

Université de Nice - Sophia Antipolis

3 octobre 2008

Michel Riveill Communication par messages

Page 2: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

IntroductionGénéralitésCommunication par échange de messages

JMSGénéralitésMessages JMSMessages persistantsTransactionsExemple

Michel Riveill Communication par messages

Page 3: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Rappel sur les intentions

I Dans le modèle Client-Serveur, le serveur est prédominantI On ne souhaite pas être bloqué pendant une communication

(asynchronisme)I On ne connaît pas toujours ceux avec qui on communique

Michel Riveill Communication par messages

Page 4: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

On connait déjà ce modèle

I Communication par message au niveau socket :communication udp et multicast

I Connexions faibles entre objets : le design Pattern ObserverObservable

I Programmation Java : utilisation des listenersI Corba : le service d’événements

Michel Riveill Communication par messages

Page 5: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Communication par socket : datagramme

Michel Riveill Communication par messages

Page 6: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Communication par socket : multicast

Michel Riveill Communication par messages

Page 7: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Pattern Oberver-Observable

I Un effet de bord fréquent de la partition d’un système en unecollection de classes coopérantes est la nécessité de maintenirla consistance entre les objets reliés entre eux.

I On ne veut pas obtenir la consistance en liant étroitement lesclasses, parce que cela aurait comme effet de réduire leurréutilisabilité.

I Moyen : définir une dépendance de ’1’ à ’n’ entre des objetstelle que lorsque l’état d’un objet change, tous ses dépendantssont informés et mis à jour automatiquement

Michel Riveill Communication par messages

Page 8: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Pattern Oberver-Observable

Quand l’appliquerI Lorsqu’une abstraction possède deux aspects dont l’un dépend

de l’autre. L’encapsulation de ces aspects dans des objetsséparés permet de les varier et de les réutiliserindépendemment (Modèle-Vue-Contrôleur).

I Lorsqu’une modification à un objet exige la modification desautres, et que l’on ne sait pas a priori combien d’objetsdevront être modifiés.

I Lorsqu’un objet devrait être capable d’informer les autresobjets sans faire d’hypothèses sur ce que sont ces objets,

Michel Riveill Communication par messages

Page 9: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Pattern Oberver-Observable

I Le pattern ’Observer’ décrit comment établir les relations entreles objets dépendants

Les objets-clés sontI la source : peut avoir n’importe quel nombre d’observateurs

dépendants, tous les observateurs sont informés lorsque l’étatde la source change

I l’observateur : chaque observateur demande à la source sonétat afin de se synchroniser

Michel Riveill Communication par messages

Page 10: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Pattern Oberver-Observable

BénéficesI Utilisation indépendante des sources et des observateurs.

I On peut réutiliser les sources sans réutiliser les observateurs etvice-versa.

I On peut ajouter des observateurs sans modifier la source et lesautres observateurs.

I Support pour la communication ’broadcast’ : la source ne sepréoccupe pas du nombre d’observateurs.

Michel Riveill Communication par messages

Page 11: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Listener Java

Michel Riveill Communication par messages

Page 12: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

La communication par échange de messages

Deux modèles de communication :I communication point-à-point basée sur une queue de messages

(1 vers 1). Il peut y avoir plusieurs émetteurs et plusieursrécepteurs.

I publish-subscribe (1 vers n). Il peut y avoir plusieurs"publishers".

Michel Riveill Communication par messages

Page 13: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Exemple d’utilisation du modèle point à point

I Une queue pour stocker les commandes d’une entreprise,I Les représentants de l’entreprise envoient des commandes dans

cette queue,I Les unités de fabrication prélèvent des commandes dans cette

queue pour exécution

Michel Riveill Communication par messages

Page 14: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Communication point à point (PTP)

I l’émetteur envoie son message dans une queueI le destinataire prélève un message dans une queue, chaque

message n’est reçu que par un seul destinataire, les messagessont prélevs selon l’ordre FIFO

I les messages peuvent être persistants ou non persistants, seulun message persistant survit à la défaillance du serveur quigère la queue

Michel Riveill Communication par messages

Page 15: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Communication point à point (PTP)

Michel Riveill Communication par messages

Page 16: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Exemple d’utilisation du modèle publish/subscribe

I Bourse : les sujets (topics) correspondent aux différentesentreprises cotées,

I La bourse publie régulièrement une mise à jour des cours desdifférentes entreprises,

I Un client intéressé au cours des actions IBM, souscrit à cesujet. Un sujet correspond ici à une entreprise X, et lesmessages publiés aux différents cours de l’action de l’entrepriseX.

Michel Riveill Communication par messages

Page 17: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Modèle publish/subscribe

I le “publisher” adresse son message à un sujet (topic)I un souscripteur souscrit à un sujetI un message peut être reçu par de multiples destinataires, les

différents souscripteursI un souscripteur qui souscrit à l’instant t, ne reçoit que les

messages pubiés après tI pour recevoir les messages le souscripteur doit être actif, la

souscription durable permet à un souscripteur de recevoir lesmessages publis pendant les périodes ou le souscripteur n’estpas actif

I les messages peuvent être persistants ou non persistants, seulun message persistant survit à la défaillance du serveur quigère le sujet

Michel Riveill Communication par messages

Page 18: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Remarque : la durabilité est une propriété liée au souscripteur alorsque la persistance est une propriété liée au message(éventuellement au serveur qui gère le sujet)

Michel Riveill Communication par messages

Page 19: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Modèle publish/subscribe

Michel Riveill Communication par messages

Page 20: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésCommunication par échange de messages

Réception synchrone ou asynchrone des messages

I réception synchrone : le destinataire (modèle PTP) ou lesouscripteur (modèle pub/sub) appelle la méthode receive ().L’appel est bloquant jusqu’à ce qu’un message soit obtenu. Ilest possible de spécifier un timeout.

I réception asynchrone : le destinataire ou le souscripteur peutenregistrer dans un objet de type listener la méthodeonMessage () à exécuter lors de la réception d’un message.

Michel Riveill Communication par messages

Page 21: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

JMS

I JMS = Java Messaging ServiceI JMS est une API Java proposée par Sun, permettant aux

applications réparties de créer, envoyer, recevoir et lire desmessages

I première specification publiée en 1998I un fournisseur JMS (JMS provider) est un système qui

implémente les interfaces JMS (et offre des outilsd’administration)

Michel Riveill Communication par messages

Page 22: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Remarques :I JMS permet un couplage faible entre entités réparties (les

différentes entités n’ont pas besoin d’être activessimultanément)

I Par comparaison RMI, CORBA : couplage fort entre entitésréparties (les différentes entités doivent être activessimultanément)

Michel Riveill Communication par messages

Page 23: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

JMS est une API

Michel Riveill Communication par messages

Page 24: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Références

I R. Monson-Haefel, D.A. Chappell Java Message ServiceO’Reilly, 2001

I P. Giotta et al. Professional JMS Programming Wrox Press,2000

I http ://java.sun.com/products/jms/tutorial/

Michel Riveill Communication par messages

Page 25: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Modèles de communication

JMS offre les deux modèles de communication usuel :I communication point-à-point basé sur une queue de messages

(1 vers 1). Il peut y avoir plusieurs émetteurs et plusieursrécepteurs.

I publish-subscribe (1 vers n). Il peut y avoir plusieurs"publishers".

Michel Riveill Communication par messages

Page 26: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

JMS point à point

Michel Riveill Communication par messages

Page 27: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

JMS point à point

Michel Riveill Communication par messages

Page 28: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Client et serveur JMS

I client JMS : programme ou composant écrit en Java quienvoie ou reçoit des messages

I serveur JMS : composant qui permet à des clients JMS decommuniquer entre eux

Michel Riveill Communication par messages

Page 29: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Messages JMS

Michel Riveill Communication par messages

Page 30: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

En-tête

I utilisé pour l’identification et le routageI inclues : JMSDestination, JMSDeliveryMode, JMSMessageID,

JMSTimeStamp, JMSExpiration, JMSReplyTo

Michel Riveill Communication par messages

Page 31: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Propriétés

I décrivent les propriétés liées à l’application, au système demessagerie, optionnelles associées aux messages

I une propriété est un couple nom / valeur

Michel Riveill Communication par messages

Page 32: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Corps

I contient le corps du message, lut séquentiellementI byte[], String, Object

Michel Riveill Communication par messages

Page 33: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Messages persistants

I Les messages persistants sont conservés par le serveur JMS surdisque. Ils survivent ainsi à une défaillance du serveur JMS

I Dans le cas de message persistants, le protocole entre le clientJMS et le serveur JMS inclus un message d’acquittement.

Michel Riveill Communication par messages

Page 34: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Envoi de messages persistants

I la méthode appelée par le client ne se termine que lorsque lemessage est stocké sur le disque

Michel Riveill Communication par messages

Page 35: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Réception de messages persistants

I le message est supprimé du disque que lorsque le serveur JMSa reçu un acquitement de la part du client JMS

Michel Riveill Communication par messages

Page 36: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Accusé de réception

I Mode AUTO_ACKNOWLEDGE : ACK envoyéautomatiquement soit à la fin de la méthode receive()(réception synchrone), soit à la fin de la méthode onMessage()(réception asynchrone).

I Mode CLIENT_ACKNOWLEDGE : le récepteur contrôlel’envoie du ACK en appelant la méthodemessage.acknowledge().

Michel Riveill Communication par messages

Page 37: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Perte du message ACK

I Si le serveur JMS tombe en panne, le message reçu par leclient JMS n’est pas nécessairement effacé du disque.

I Dans ce cas, lorsque le serveur JMS redémarre, il cherchera àrenvoyer le même message.

I Il peut être souhaitable d’éviter qu’un même message ne soitreçu plus d’une fois par l’application.

Michel Riveill Communication par messages

Page 38: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Perte du message ACK

I mode AUTO_ACKNOWLEDGE : une table des ID demessages reçus est gérée automatiquement sur le client JMS.Lors de la réception d’un message, si l’ID figure dans la table(message déjà reçu), le message est ignoré.

I mode DUPS_OK_ACKNOWLEDGE : le client JMS ne gèrepas de table avec les ID des messages reçus et un messagepeut alors être reçu plusieurs fois.

Michel Riveill Communication par messages

Page 39: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Perte du message ACK

I mode CLIENT_ACKNOWLEDGE, aucune table d’ID demessages n’est gérée.

I Une exception est levée chez le client JMS en cas dedéfaillance du serveur JMS (défaillance qui pourrait conduire leserveur JMS à redélivrer le même message).

I Lorsque l’exception est levée, le client JMS doit se préparer àrecevoir peut être le message une 2ème fois (et par exemplel’ignorer).

Michel Riveill Communication par messages

Page 40: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Transactions JMS

I Une transaction JMS permet de grouper l’envoi de plusieursmessages ou la réception de plusieurs messages.

I Exemple d’envoi transactionnel : un client JMS envoie m1 etm2, mais ne souhaite pas qu’en cas de défaillance (du client)seul m1 soit reçu par un serveur JMS.

I Exemple de réception transactionnelle : un client JMS souhaiterecevoir deux messages m1 et m2, et ne souhaite pas qu’en casde défaillance (du client) seul m1 ait été reçu et traité.

Michel Riveill Communication par messages

Page 41: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Transactions coté émetteur

I Une transaction JMS est indiquée par un paramètre aumoment de la création de la connexion entre le client JMS etle serveur JMS

I La méthode commit() est appelée pour indiquer la fin de latransaction

I Les messages sont gardés par le serveur JMS ; ils ne sont pasdélivrés à un client JMS tant que commit() n’a pas étéinvoqué.

I Si le client JMS invoque rollback() (au lieu de commit()), lesmessages sont détruits.

Michel Riveill Communication par messages

Page 42: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Transactions coté émetteur

Michel Riveill Communication par messages

Page 43: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Transactions coté récepteur

I Les messages envoyés au client JMS sont gardés par le serveurJMS ; ils sont détruits uniquement lorsque le client invoquecommit().

I Si le client invoque rollback() (au lieu de commit()), lesmessages ne sont pas détruits par le serveur JMS.

Michel Riveill Communication par messages

Page 44: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Transactions coté récepteur

Michel Riveill Communication par messages

Page 45: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Exemple : création d’un message

I ObjectMessage message = session.createObjectMessage() ;I message.setObject(myObject) ;

Michel Riveill Communication par messages

Page 46: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Building a JMS Sender Application

1. Get ConnectionFactory and Destination object (Topic orQueue) through JNDI

2. Create a Connection3. Create a Session to send/receive messages4. Create a MessageProducer (TopicPublisher or QueueSender)5. Start Connection6. Send (publish) messages7. Close Session and Connection

Michel Riveill Communication par messages

Page 47: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Building a JMS Receiver Application (non-blocking mode)

1. Get ConnectionFactory and Destination object (Topic orQueue) through JNDI

2. Create a Connection3. Create a Session to send/receive messages4. Create a MessageConsumer (TopicSubscriber or

QueueReceiver)5. Register MessageListener for non-blocking mode6. Start Connection7. Close Session and Connection

Michel Riveill Communication par messages

Page 48: Plan Introduction JMS - unice.fr › ~riveill › mes-cours › autres-modeles › jms-cours.pdf · Plan Introduction JMS Communication par messages MichelRiveill Université de Nice

PlanIntroduction

JMS

GénéralitésMessages JMSMessages persistantsTransactionsExemple

Building a JMS Receiver Application (blocking mode)

1. Get ConnectionFactory and Destination object (Topic orQueue) through JNDI

2. Create a Connection3. Create a Session to send/receive messages4. Create a MessageConsumer5. Start Connection6. Receive message7. Close Session and Connection

Michel Riveill Communication par messages