Notes de Version de Sun Java System Message Queue 4.2

Destinations multiples pour un éditeur ou un abonné

Dans Message Queue 4.2, un éditeur peut maintenant publier des messages vers de multiples destinations de sujet et un abonné peut recevoir des messages provenant de multiples destinations de sujet. Cette capacité est obtenue en utilisant un nom de destination de sujet incluant des caractères génériques, permettant ainsi de multiples destinations. L'utilisation de noms symboliques de ce type permet aux administrateurs de créer des destinations de sujet supplémentaires, selon le cas, de façon cohérente avec le schéma de nommage générique. Les éditeurs et les abonnés publient et consomment automatiquement à partir des destinations ajoutées. (Les abonnés de sujet générique sont plus courants que les éditeurs.)


Remarque –

Cette fonction ne s'applique pas aux destinations de files d'attente.


Le format du nom de la destination du sujet symbolique se compose de multiples segments, dans lesquels les caractères génériques (*, **, >) peuvent représenter un ou plusieurs segments du nom. Par exemple, supposons que vous ayez un schéma de nommage de destination comme suit :

taille.couleur. forme

où les segments de nom du sujet avoir les valeurs suivantes :

Message Queue prend en charge les caractères génériques suivants :

Vous pouvez par conséquent indiquer de multiples destinations de sujet comme suit :

grand.*.cercle représenterait :

grand.rouge.cercle
grand.vert.cercle
...

**.carré représenterait tous les noms se terminant par .carré , par exemple :


petit.vert.carré
moyen.bleu.carré
...

petit.> représenterait tous les noms de destination commençant par petit., par exemple :


petit.bleu.cercle
petit.rouge.carré
...

Pour utiliser cette fonction de multiples destinations, vous créez des destinations de sujet à l'aide du schéma de nommage similaire à la description ci-dessus. Les applications client peuvent ensuite créer des éditeurs ou des consommateurs en utilisant des noms de destination symboliques. Exemple :

...
Chaîne DEST_LOOKUP_NAME = "grand.*.cercle";
Sujet t = (Destination) ctx.lookup(DEST_LOOKUP_NAME);
TopicPublisher myPublisher = mySession.createPublisher(t)
myPublisher.send(myMessage);
...
Chaîne DEST_LOOKUP_NAME = "**.carré";
Sujet t = (Destination) ctx.lookup(DEST_LOOKUP_NAME);
TopicSubscriber mySubscriber = mySession.createSubscriber(t);
Message m = mySubscriber.receive();

Dans le premier exemple, le courtier placera une copie du message sous une quelconque destination correspondant au nom symbolique grand.*.cercle. Dans le second exemple, un abonné sera créé si au moins une destination correspond au nom symbolique **.carré et il recevra des messages de toutes les destinations correspondant à ce nom symbolique. Si aucune destination ne correspond au nom symbolique, l'éditeur ne sera créé que lorsqu'il existera une destination.

Si un administrateur crée des destinations supplémentaires correspondant à un nom symbolique, alors les éditeurs génériques créés à l'aide du nom symbolique publieront par la suite vers cette destination et les éditeurs génériques créés à l'aide de ce nom symbolique recevront par la suite des messages à partir de cette destination.

De plus, les outils d'administration de Message Queue, outre le fait de signaler le nombre total d'éditeurs (producteurs) et d'abonnés (consommateurs) pour une destination de sujet, signaleront également s'ils existent, le nombre des éditeurs génériques et des abonnés génériques (y compris, pour chacun, leurs noms de destination symboliques).