Postcard - Mode de fonctionnement

Contenu principal

Démarrage

Lorsque l'application Postcard démarre, elle vérifie la présence de gestionnaires de files d'attente sur l'ordinateur et initialise la boîte de dialogue d'ouverture de session en conséquence (s'il n'existe aucun gestionnaire de files d'attente, vous serez invité à installer la configuration par défaut).

L'application Postcard utilise l'appel JMS queueConnectionFactory.createQueueConnection() pour se connecter au gestionnaire de files d'attente par défaut.

Réception de messages

Pendant toute la durée de son exécution, Postcard interroge une file d'attente postcard pour déterminer si des messages entrants issus d'autres sessions Postcard ont été reçus (s'il n'existe aucune file d'attente postcard, l'application Postcard tentera d'en créer une).

Lorsque l'application Postcard est lancée, elle crée un objet JMS QueueReceiver pour la file d'attente locale de messages postcard, fournissant ainsi un sélecteur de messages de type chaîne, sous de paramètre, qui filtre les messages transmis par la file d'attente et reçus par l'ID corrélation (de la zone CorrelId). Le sélecteur de messages de type chaîne indique que le client Postcard doit recevoir uniquement des messages dans lesquels la zone CorrelID correspond à l'alias de l'utilisateur. Le texte des messages extraits de la file d'attente est alors présenté dans la fenêtre JMS Postcard.

Envoi de messages

Si aucun nom d'ordinateur n'est indiqué dans la zone Sur, l'application Postcard suppose que le destinataire se trouve sur le même gestionnaire de files d'attente.

Si un nom d'ordinateur est indiqué, l'application Postcard vérifie l'existence d'un gestionnaire de file d'attente portant ce nom - d'abord en utilisant ne nom exact tel qu'il a été fourni, puis en utilisant un préfixe possédant un format identique à celui créé par la configuration par défaut.

Dans les deux cas, une commande session.createQueue("postcard") est émise. L'application attribue le nom du gestionnaire de files d'attente de base à la chaîne fournie.

Enfin, elle crée un JMS BytesMessage à partir de l'alias et des noms saisis, puis elle exécute queueSender.send(theMessage) afin de placer le message dans la file d'attente.

Envoi des messages Postcard

Lorsque d'autres instances de l'application Postcard exécutées sur le même ordinateur utilisent le même gestionnaire de files et la même file d'attente, les messages sont simplement insérés et extraits de cette unique file. Cela permet toutefois de vérifier que le code WebSphere MQ installé sur cet ordinateur est configuré et fonctionne correctement.

Pour que l'application PostCard puisse envoyer des messages à un autre gestionnaire de files d'attente, une connexion doit être définie vers ce dernier. Cette connexion existe lorsque les deux gestionnaires de files d'attente appartiennent au même cluster ou lorsque vous avez vous-même défini cette connexion. L'application Postcard peut donc considérer qu'il est possible de se connecter à ce gestionnaire de files d'attente et s'y connectera. Elle ouvre la file d'attente pour y insérer un message, comme décrit précédemment, laissant tout le travail d'extraction au code de gestion des clusters Websphere MQ. En d'autres termes, Postcard utilise uniquement la portion de code permettant d'insérer le message et n'a pas besoin de connaître si le message doit être envoyé sur un autre ordinateur.

Dans l'application Postcard, lors de l'appel session.createSender("postcard"), le code de gestion des clusters recherche l'autre gestionnaire de files d'attente dans le référentiel et vérifie que la file d'attente existe. Si tel n'est pas le cas, une exception est envoyée quelle que soit la raison.

Lors de l'appel queueSender.send(theMessage), le code de gestion des clusters ouvre un canal vers l'autre gestionnaire de files d'attente (et le crée, si nécessaire), puis envoie le message.

Par la suite, le canal peut être supprimé, si le code d'optimisation des clusters n'en a pas besoin. Si les gestionnaires de files d'attente sont sur différents ordinateurs, tout cela est géré par le code de gestion des clusters.

Suppression des messages non délivrables

Si un message Postcard était transmis à "John", sans que cet alias n'ait jamais été utilisé pour l'ouverture d'une session Postcard, le message resterait dans la file d'attente indéfiniment. Pour éviter cela, l'application Postcard fixe à 48 heures la durée de vie du message (Expiration) dans le descripteur de message (MQMD). Une fois ce délai dépassé, le message est supprimé, où qu'il se trouve (en attente de transmission, par exemple).


Marques

Veuillez transmettre vos commentaires sur l'aide et la documentation à idrcf@hursley.ibm.com

(C) IBM Corporation 1996, 2002. All rights reserved