Méthode createQueue ou createTopic et le fournisseur de messagerie par défaut

Vous pouvez utiliser la méthode Session.createQueue(String) ou Session.createTopic(String) au lieu d'une recherche JNDI pour créer une file d'attente ou un sujet JMS à l'aide du fournisseur de messagerie par défaut.

Les applications peuvent utiliser la méthode InitialContext.lookup() pour extraire les objets administrés. Une autre approche, cependant moins facile à gérer, pour obtenir des objets de destination JMS définis par le système par une recherche JNDI consiste à utiliser la méthode Session.createQueue(String) ou Session.createTopic(String). Par exemple,
Queue q = mySession.createQueue("Q1");
crée une instance de file d'attente JMS permettant de référencer la destination existante Q1.

Dans le cas du fournisseur de messagerie par défaut, la destination existante correspond à une file d'attente ou à un espace de sujet sur le bus auquel la session est connectée.

createQueue

La méthode Session.createQueue(String) permet de créer un objet de file d'attente JMS représentant une destination existante. Il s'agit d'une autre approche possible, cependant moins facile à gérer, pour obtenir des objets de file d'attente JMS définis par le système par une recherche JNDI.

Format simple
Dans son format le plus simple, le paramètre de la méthode createQueue correspond au nom d'une destination existante sur le bus auquel la session est connectée. Par exemple, s'il existe une file d'attente intitulée Q1, la méthode suivante permet de créer une instance de file d'attente JMS permettant de référencer cette destination :
Queue q = mySession.createQueue("Q1");
Format d'URI
Dans les cas plus complexes, les applications peuvent utiliser un format d'URI. Le format d'URI permet de fournir un nombre arbitraire de paires nom/valeur pour définir diverses propriétés de l'objet File d'attente. L'URI de file d'attente est identifié par le préfixe queue://, suivi du nom de la file d'attente. Pour Q1, le format simple indiqué précédemment peut être exprimé par l'URI suivant :
Queue q = mySession.createQueue("queue://Q1");
Les paires nom/valeur sont précédées d'un point d'interrogation ?. Par exemple, une application peut connecter une session à un bus, puis utiliser le format suivant pour créer une instance de file d'attente JMS pour Q2 sur un autre bus, appelé otherBus :
Queue q = mySession.createQueue("queue://Q2?busName=otherBus");
Lors de l'envoi de messages à IBM MQ, un signe (@) et le nom du gestionnaire de files d'attente doivent être placés après le nom de la file d'attente, par exemple :
Queue q = mySession.createQueue("queue://Q2@qmgr?busName=otherBus");
Les paires nom/valeur multiples sont séparées par un perluète &. Par exemple :
Queue q = mySession.createQueue("queue://Q2?busName=otherBus&deliveryMode=
Application&readAhead=AsConnection&priority=6");
Propriétés
busName, deliveryMode, priority, readAhead et timeToLive. Pour une description de ces propriétés, voir les informations de l'API générée.

createTopic

La méthode Session.createTopic(String) permet de créer un objet de sujet JMS représentant une destination existante. (Notez que pour les sujets, c'est l'espace de sujet et non le sujet qui doit exister.) Il s'agit d'une autre approche possible, cependant moins facile à gérer, pour obtenir des objets de sujet JMS définis par le système par une recherche JNDI.

Format simple
Dans son format le plus simple, le paramètre de la méthode createTopic correspond au nom d'un sujet de l'espace de sujet par défaut sur le bus auquel la session est connectée. Par exemple, si l'espace de sujet par défaut existe, une instance de sujet JMS peut être utilisée pour faire référence au sujet cats dans l'espace de sujet par défaut :
Topic t = mySession.createTopic("cats");
Pour spécifier un espace de sujet autre que celui par défaut, il est possible d'utiliser une syntaxe spéciale de la forme topicSpace:topic. Exemple :
Topic t = mySession.createTopic("kennelTopicSpace:dogs");
Format d'URI
Dans des situations plus complexes, il est possible d'utiliser un format d'URI. L'URI de sujet est identifié par le préfixe topic:// suivi du nom du sujet. Les exemples précédents peuvent être exprimés sous la forme des URI suivants :
Topic t = mySession.createTopic("topic://cats");

Topic t = mySession.createTopic("topic://dogs?topicSpace=kennelTopicSpace");

Comme pour les files d'attente, s'il existe plusieurs paires nom/valeur, ces dernières sont séparées par un perluète &.

Propriétés
busName, deliveryMode, priority, readAhead, timeToLive et topicSpace. Pour une description de ces propriétés, voir les informations de l'API générée.

Prise en charge des URI MA88

Les applications WebSphere Application Server Version 5.1 peuvent utiliser les méthodes createQueue et createTopic pour créer des objets de file d'attente et de sujet JMS à l'aide du fournisseur de messagerie intégré de la version 5 (fournisseur de messagerie JMS de la Version 5.1). Pour faciliter la migration de ces applications, le fournisseur de messagerie par défaut de la (bus d'intégration de services) prend en charge un vaste sous-ensemble de paramètres de chaîne MA88 valides dans les méthodes createQueue et createTopic.

Gestionnaire de files d'attente par défaut
Un URI MA88 de file d'attente inclut le nom du gestionnaire de files d'attente ; par exemple :
queue://qm/queue

Pour spécifier le gestionnaire de files d'attente par défaut, n'entrez pas le nom du gestionnaire de files d'attente ; par exemple : queue:///queue (notez les trois barres obliques, ///). L'interprétation du gestionnaire de files d'attente par défaut étant logiquement compatible avec le concept d'une file d'attente sur le bus actuel, le bus tolère la présence de trois barres obliques à la suite du préfixe queue:. Cela permet au bus d'utiliser les URI de file d'attente MA88 avec un gestionnaire de files d'attente par défaut, sans les modifier.

Gestionnaire de files d'attente autre que celui par défaut
Si un URI de file d'attente MA88 spécifie un gestionnaire de files d'attente autre que celui par défaut, comme dans queue://qm/queue, son interprétation dans le bus est ambiguë. Pour mettre en évidence le problème potentiel et s'assurer que la destination est prise en compte lors du processus de portage, un tel URI génère une exception JMS lorsqu'il est transmis à la méthode createQueue().
Propriétés MA88
Comme pour les URI du bus, les URI MA88 peuvent contenir un certain nombre de paires nom/valeur spécifiant les propriétés de la destination. Un grand nombre de propriétés spécifiques à MA88 n'ont aucun équivalent direct dans le bus et sont automatiquement ignorées. Toutefois, les propriétés MA88 suivantes sont mappées vers leurs équivalents du bus :
Nom MA88 Nom de bus d'intégration de services Remarques
expiry timeToLive
persistence deliveryMode

1 = Non persistant
2 = Persistant
Autre valeur = Application

Conversion des caractères génériques de sujet

Un sujet utilisé pour réceptionner des messages peut inclure des caractères génériques. La syntaxe des caractères génériques utilisée dans MA88 différant de la syntaxe XPath utilisée dans le bus, si un URI MA88 contient des caractères génériques, le bus tente de les convertir en équivalents XPath. La conversion effectuée dépend de la présence de la propriété brokerVersion dans l'URI MA88. Avec le fournisseur de messagerie par défaut de WebSphere Application Server Version 5.1, les URI spécifiant un caractère générique de sujet devaient inclure brokerVersion=1 dans les paires nom/valeur. Le bus utilise donc brokerVersion=1 comme déclencheur pour entreprendre la conversion des caractères génériques de MQSI en XPath.

Respect de la casse

La casse doit être respectée dans toutes les parties des paramètres de chaîne createQueue et createTopic.

Instances multiples d'une même propriété

Si un URI contient plusieurs occurrences d'une propriété donnée dont les valeurs sont en conflit, la valeur à utiliser n'est pas spécifiée.

Conflit entre les propriétés de MA88 et les propriétés du bus

Si un URI contient une propriété et l'équivalent MA88 de cette propriété et que leurs valeurs sont en conflit, la valeur à utiliser n'est pas spécifiée.

Propriétés inconnues

Toute paire nom/valeur pour laquelle le nom de la propriété n'est pas reconnu est ignorée sans qu'aucune erreur ne soit signalée.

Insertion d'une barre oblique devant les caractères spéciaux

Les caractères suivants ont une signification particulière dans les paramètres de chaîne createQueue et createTopic :
: (deux-points)
Utilisé comme séparateur entre l'espace de sujet et le sujet dans les chaînes de sujets au format abrégé
? (point d'interrogation)
Permet d'indiquer le début des paires nom/valeur.
& (perluète)
Permet de séparer plusieurs paires nom/valeur.
Si vous voulez utiliser l'un de ces caractères dans un URI, vous devez le précéder d'une barre oblique inversée \. Le caractère \ peut également être utilisé s'il est doublé (\\). Notez que le caractère \ est traité comme un caractère spécial par le langage Java™ et doit donc être doublé lorsqu'il est placé dans des constantes de chaîne de caractères. Par exemple :
createTopic("myTop\\:ic")                      creates a topic with the name "myTop:ic"
createTopic("topic://my\\?Topi\\\\c")          creates a topic with the name "my?Topi\c"
createQueue("queue://q1?busName=silly\\&bus")  creates a queue with bus name "silly&bus"

Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rjn0001_
Nom du fichier : rjn0001_.html