Fournisseur de messagerie par défaut : Conseils pour l'identification et la résolution des problèmes

Cet ensemble de conseils spécifiques vous aidera à identifier et à résoudre les problèmes liés à la messagerie JMS avec le fournisseur de messagerie par défaut.

Pour des conseils généraux en vue de l'identification et de la résolution de problèmes liés à la messagerie WebSphere Application Server, voir Conseils pour l'identification et la résolution des problèmes liés à la messagerie. Cette rubrique fournit des conseils supplémentaires spécifiques au fournisseur de messagerie par défaut et à son utilisation des technologies d'intégration de services.

Une destination arrive à saturation et ne peut plus recevoir les messages car les messages existants ne sont pas consommés.

Lorsque vous configurez une application pour qu'elle utilise le fournisseur de messagerie par défaut, associez-la à l'un des jeux de ressources suivants :
  • Un ou plusieurs beans de message connectés via les spécifications d'activation JMS (Java™ Message Service).
  • Un ou plusieurs beans enterprise connectés via des fabriques de connexions JMS et des destinations JMS.

Vous pouvez utiliser le panneau de la console d'administration pour examiner la configuration des applications et des ressources JMS qui utilisent la destination : Ressources d'application pour cette destination.

Ce panneau peut vous aider à identifier la cause d'un incident en présentant une vue détaillée qui contient un grand nombre de ressources pertinentes.

Une application JMS ne parvient plus à envoyer ou à recevoir des messages

Lorsque vous configurez une application pour qu'elle utilise le fournisseur de messagerie par défaut, associez-la à l'un des jeux de ressources suivants :
  • Un ou plusieurs beans de message connectés via les spécifications d'activation JMS (Java Message Service).
  • Un ou plusieurs beans enterprise connectés via des fabriques de connexions JMS et des destinations JMS.

Vous connectez l'application aux beans de message ou aux beans enterprise via le descripteur de déploiement de l'application ou via le code de l'application lui-même. Si vous avez connecté l'application via le descripteur de déploiement, vous pouvez utiliser le panneau de la console d'administration suivant pour afficher l'intégralité de l'application métier installée et examiner la configuration des ressources JMS actuellement utilisées par l'application : Ressources de messagerie pour cette application.

Ce panneau peut vous aider à identifier la cause d'un incident en présentant une vue détaillée qui contient un grand nombre de ressources pertinentes.

Les applications client JMS s'exécutant dans le conteneur client Java Platform, Enterprise Edition (Java EE) échouent lors de l'appel de la méthode ConnectionFactory.createConnection

Lorsque une application client JMS s'exécute dans le conteneur client Java EE client container, sur une machine qui n'exécute pas d'autre processus WebSphere Application Server, un appel de la méthode ConnectionFactory.createConnection peut échouer en renvoyant l'erreur suivante :
CWSIJ0005E : Impossible de trouver une instance du service Channel Framework à utiliser pour la communication.
Motif

La fabrique ConnectionFactory pour le fournisseur de messagerie par défaut a une dépendance envers le service Channel Framework. Elle localise le service Channel Framework via une recherche dans l'espace de nom JNDI. Pour se connecter à un service de nommage, ConnectionFactory utilise un objet InitialContext créé à l'aide du constructeur par défaut.

Lorsque le client JMS s'exécute dans un environnement de serveur d'applications, l'objet InitialContext parvient à se connecter au service de nommage, le service Channel Framework est localisé et l'appel à createConnection aboutit.

Cependant, lorsque le client JMS s'exécute dans le conteneur client Java EE, l'objet InitialContext utilise la valeur de la propriété système java.naming.provider.url pour déterminer l'emplacement du service de nommage auquel se connecter. Si aucune valeur n'est spécifiée pour cette propriété, il tente de se connecter à un service de nommage situé sur le port 2809 sur la machine locale du client. Si aucun serveur n'est en exécution sur la machine du client, aucun service de nommage n'est à l'écoute sur ce port sur la machine locale. Ceci entraîne l'échec de la méthode createConnection.

Solution
Une application client JMS peut spécifier la valeur de java.naming.provider.url par voie de programmation, en utilisant du code suivant la forme :
String key = "java.naming.provider.url";
String value = "iiop://some.remote.machine:9810";
System.setProperty(key, value);

Ce code doit s'exécuter avant l'appel de la méthode the createConnection sur l'objet ConnectionFactory.

Autre possibilité, si vous utilisez le script launchClient depuis la ligne de commande pour lancer le conteneur client Java EE, vous pouvez spécifier l'un des deux paramètres de ligne de commande suivants :
  • launchClient <CLIENT EAR> -CCBootstrapHost=some.remote.machine -CCBootstrapPort=981
  • launchClient <CLIENT EAR> -CCproviderURL=iiop://some.remote.machine:9810

Ceci garantit que si une URL de fournisseur n'est pas spécifiée par programmation, les objets initiaux InitialContext utilisent par défaut celle spécifiée sur la ligne de commande.


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=rjn_prob0
Nom du fichier : rjn_prob0.html