FioranoMQ 10 – Key Features


Shared Subscriptions - Plusieurs consumers peuvent désormais partager une 'topic subscription'
[JMS 2.0]

Avec la norme JMS1.1, la souscription à un topic, durable ou non-durable ne pouvait s'appliquer qu'à un seul consumer. Cette limitation a disparu dans la norme JMS 2.0, avec l'introduction du concept de 'Shared Consumers'. Les 'shared consumers' partagent une unique 'Share Subscription Name' et chaque message de la souscription est reçu par un seul des 'consumers' de cette souscription, qu'elle soit

  • Non-durable subscriptions
  • Durable subscriptions

Envoi asynchrone [JMS 2.0]

De nouvelles méthodes ont été ajoutées, afin de permettre la délivrance asynchrone des messages. ces méthodes rendent instantanément la main, et lance l'envoi dans un thread séparé, sans aucune attente. Lorsque l'envoi est confirmé, une méthode call-back est invoquée sur l'objet préalablement choisi par le développeur.

Delivery delay [JMS 2.0]

La propriété ' message delivery time ' permet de fixer la date et l'heure à partir de laquelle le provider JMS peut délivrer le message. Le provider JMS ne peut en aucun cas délivrer le message avant cette échéance. Si le message est publié dans un topic, , il ne sera ajouté aux souscriptions durables et non-durables, que dans la mesure où la souscription existe à l'instant de l'envoi du message.

De nouvelles méthodes pour créer une session [JMS 2.0]

Deux nouvelles méthodes ont été ajoutées dans javax.jms.Connection pour créer une session.

  • createSession(int sessionMode)
    Cette méthode fournit la même fonctionnalité que la méthode createSession(boolean transacted, int acknowledgeMode) avec un seul argument.
  • createSession()
    Cette méthode est destinée à être utilisée en Java EE web ou pour un container EJB lorsqu'une transaction JTA est activé, dans le cas où la variable sessionMode de createSession(int sessionMode) est ignorée.

Nouvelles méthodes createDurableConsumer [JMS 2.0]

Deux méthodes createDurableConsumer, qui retournent un messageConsumer ont été ajoutées à l'interface javax.jms.Session. Elles ont vocation à remplacer les méthodes createDurableSubscription qui retournent un TopicSubscriber propre à un domaine.

Client ID optionnel pour les shared durable subscriptions [JMS 2.0]

Dans la norme JMS 2.0, les 'shared durable subscriptions' n'imposent plus que le client ID soit initialisé lors de la création ou l'activation d'une souscription durable.

Use of AutoCloseable [JMS 2.0]

Les interfaces Connection, Session, MessageProducer, MessageConsumer and QueueBrowser ont été modifiées pour étendre l'interface java.lang.Autocloseable. En conséquence, les applications peuvent créer ces objets avec une instruction try-with-resources Java SE 7 ce qui supprimer la nécessité d'appeler explicitement la méthode close() lorsque ces objets ne sont plus utiles.

JMSXDeliveryCount [JMS 2.0]

La propriété JMSXDeliveryCount, autrefois optionnelle, est devenue obligatoire. En conséquence, les providers JMS doivent mettre à jour cette propriété chaque fois qu'un message est reçu.

API simplfiée [JMS 2.0]

Trois nouveaux objets JMSContext, JMSProducer and JMSConsumer permettent désormais de combiner les fonctionnalités des objets Connection, Session, MessageProducer et MessageConsumer.

De plus, de nouvelles classes de gestion des messages et des exceptions sont désormais disponibles :

  • javax.jms.CompletionListener
  • javax.jms.IllegalStateRuntimeException
  • javax.jms.InvalidClientIDRuntimeException
  • javax.jms.InvalidDestinationRuntimeException
  • javax.jms.InvalidSelectorRuntimeException
  • javax.jms.JMSRuntimeException and many more.

Deux nouvelles méthodes pour extraire le Body d'un Message [JMS 2.0]

Deux nouvelles méthodes ont été ajoutées à l'objet Message:

  • <T> getBody(Class<T> c)
  • boolean isBodyAssignableTo(Class c)


La méthode getBody retourne le Body d'un message. Cela permet de manipuler facilement le corps d'un message reçu. La méthode isBodyAssignableTo peut être utilisée pour déterminer si un appel à la méthode getBody peut retourner le body dans un type particulier.

Longueur et jeu de caractères pour un 'Subscription name' [JMS 2.0]

Le standard JMS 1.1 ne fixait aucune limite de longueur ou de caractères pour un subscription name.

JMS 2.0 définit un jeu de caractères acceptables pour un subscription name, et fixe à 128 caractères sa longueur maximale.

Activation properties [JMS 2.0]

"MDB activation properties" définit les propriétés qu'il convient d'utiliser pour activer un JMS message-driven beans (Java EE Connector Architecture specification, version 1.6). Certaines propriétés ont été ajoutées et d'autres sont devenu optionnelles.

Native C++ Runtime Library

FioranoMQ est livrée avec une library runtime client C++, assurant de meilleures performances, ainsi qu'une API JMS2.0 simplfiée.

Queue/Topic Shutdown et Restart

Queue/Topic Shutdown et Restart sont désormais supportés. Ces nouvelles fonctionnalités permettent de modifier les destinations des message en mode run-time, et de re-affecter les destinations sans avoir à redémarrer complètement le server FMQ.