nouveautés et limitations de jms 2
TRANSCRIPT
Nouveautés et limitationsde JMS 2
Florian Beaufumé11/2015
Florian Beaufumé• Architecte logiciel Java et web
• Freelance
• [email protected]• www.adeliosys.fr
• www.linkedin.com/in/fbeaufume
• fr.slideshare.net/fbeaufume
• "Java Message Service"• JMS 1.1 dans J2EE 1.4, JMS 2 dans Java EE 7• Une API Java d'émission/réception de messages• Asynchrone• Transactionnel• Types de messages : texte, map, bytes, stream, object
métier• Exemple de virement bancaire :
JMS
Foo.war Destination Bar.war
BD BD
Tx1 Tx2
Débit Crédit
• Point-to-point :
• Publish-subscribe :
• Souscription durable vs non-durable
Modèles de communication
Sender Queue Receiver
Publisher TopicSubscriber
Subscriber
• Plusieurs topologies possibles, de simple :
• A complexe:
Déploiement
Serveur d'applicationServeur JMS
Foo.war
Serveur d'application 1Serveur JMS
Foo.war Bar.war
Serveur d'application
2
Acme.warMain.jar
• API simplifiée :
• Nouvelles méthodes :
• ConnectionFactory par défaut :• Sous "java:comp/DefaultJMSConnectionFactory"
Nouveautés
• ConnectionFactory et Destination par annotation :
• Envois asynchrones (Java SE ou EE Client) :
• Shared subscriptions :• Permet de partager la charge de réception de messages• Mais pas de broadcast
Nouveautés, suite
• Poison messages :
• Soigner le gestion d'erreur, surtout les RuntimeException• Rediriger le message
• Conversations :• Utiliser correlationId ou une queue temporaire• Attention aux transactions
Difficultés
Queue Receiver Ex
• Nombre de livraisons d'un message sur topic :• Pour une application en cluster, une réception par instance
ou par cluster ?
• Cycle de vie d'une souscription durable de MDB hors spécification :• Messages perdus lors d'un redéploiement ?
Limitations