Conseils de résolution des incidents WS-ReliableMessaging
Cette rubrique contient des conseils permettant de résoudre les incidents liés à la configuration WS-ReliableMessaging.
Pour faciliter l'identification et la résolution des incidents liés à WS-ReliableMessaging, vous pouvez utiliser les fonctions de trace et de consignation de WebSphere Application Server. Si vous utilisez des outils basés Eclipse, vous pouvez également utiliser le moniteur TCP/IP dans Eclipse pour visualiser les messages qui circulent entre vos applications client et les services Web prenant en charge la messagerie fiable.
- Pour l'une ou l'autre des qualités de service gérées :
org.apache.sandesha2*=all=enabled:com.ibm.ws.websvcs.rm*=all=enabled:org.apache.axis2*=all=enabled:com.ibm.ws.sib.wsrm*=all=enabled
- Pour la qualité de service non permanente non gérée :
org.apache.sandesha2*=all=enabled:com.ibm.ws.websvcs.rm*=all=enabled:org.apache.axis2*=all=enabled
Pour obtenir la liste des principales restrictions connues qui s'appliquent lors de l'utilisation de WS-ReliableMessaging, voir WS-ReliableMessaging - Limitations connues.
Les messages système WebSphere Application Server sont journalisés à partir de nombreuses sources, y compris les applications et composants de serveur d'applications. Les messages consignés par les composants du serveur d'applications et associés aux produits IBM démarrent par un identificateur de message unique qui spécifie le composant ou l'application qui a émis le message. Le préfixe du composant WS-ReliableMessaging est CWSKA.
Le document Troubleshooter reference: Messages contient des informations sur tous les messages WebSphere Application Server, indexés par préfixe de message. Une explication de l'incident et des détails sur les éventuelles actions à entreprendre pour résoudre l'incident sont fournis pour chaque message.
- Si une séquence est réallouée, il est possible que plus de séquences que prévues soient visibles.
Si vous utilisez le protocole de messagerie fiable sur un cluster, quand vous examinez l'état d'exécution des séquences entrantes et sortantes, vous voyez plusieurs entrées pour chaque séquence
Quand vous examinez l'état d'exécution des séquences entrantes et sortantes, vous voyez plusieurs entrées pour chaque séquence
- Des erreurs d'exécution se produisent lorsque vous faites migrer des messages WS-ReliableMessaging à partir de la version 6.1.0.9 ou 6.1.0.11.
- Lorsqu'un serveur d'applications démarre, un moteur de messagerie utilisé pour la messagerie fiable est signalé comme étant indisponible
- Une application client ne peut pas appeler un service Web prenant en charge la messagerie fiable
- Une séquence n'est pas établie et WS-ReliableMessaging ne peut pas garantir la transmission des messages
- Une séquence est établie mais ne peut pas être utilisée et WS-ReliableMessaging ne peut pas garantir la transmission des messages
- Le magasin géré de la messagerie fiable n'est pas initialisé car la liaison d'ensemble de règles est incomplète ou non valide
- La messagerie fiable est interrompue car un serveur est indisponible
- Erreurs de dépassement de délai de socket lors de l'exécution de plusieurs applications client de messagerie fiable dans un cluster
- Un message n'est pas récupéré une fois qu'un serveur n'est plus disponible
- Un message d'exception indique que le jeton de contexte de sécurité n'est pas valide
Une région de serviteur subit une fin anormale d'expiration lorsque vous utiliser une qualité de service géré.
Si une séquence est réallouée, il est possible que plus de séquences que prévues soient visibles.
Lorsque vous examinez l'état d'exécution des séquences entrantes et sortantes, un plus grand nombre de séquences que la normale peut s'afficher du fait de la réallocation de séquence.
Si une séquence est réallouée, les séquences d'origine et les nouvelle séquences sont visibles. Ignorez les entrées en double.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
Si vous utilisez le protocole de messagerie fiable sur un cluster, quand vous examinez l'état d'exécution des séquences entrantes et sortantes, vous voyez plusieurs entrées pour chaque séquence
La raison est la suivante : Bien que la messagerie fiable n'est associée qu'à un seul moteur de messagerie dans un cluster, le panneau d'exécution calcule et affiche les informations des séquences une fois pour chaque membre du cluster. Ignorez les entrées en double. Notez que les faibles différences visibles dans les statistiques affichées pour chaque entrée en double viennent du fait que les entrées sont créées de manière séquentielle tandis que l'interrogation des messages continue.
![[z/OS]](../images/ngzos.gif)
Quand vous examinez l'état d'exécution des séquences entrantes et sortantes, vous voyez plusieurs entrées pour chaque séquence
La raison est la suivante : Bien que la messagerie fiable n'est associée qu'à un seul moteur de messagerie, le panneau d'exécution calcule et affiche les informations des séquences une fois pour chaque région serviteur. Ignorez les entrées en double. Notez que les faibles différences visibles dans les statistiques affichées pour chaque entrée en double viennent du fait que les entrées sont créées de manière séquentielle tandis que l'interrogation des messages continue.
Des erreurs d'exécution se produisent lorsque vous faites migrer des messages WS-ReliableMessaging à partir de la version 6.1.0.9 ou 6.1.0.11.
Si vous migrez de la version 6.1 de WebSphere Application Server et que vous utilisez la version 6.1.0.9 ou 6.1.0.11 de Feature Pack for Web Services, et si WS-ReliableMessaging est configuré pour la qualité de service permanente gérée, vous devez supprimer tous les messages conservés avant de migrer.
- Naviguez jusqu'au panneau d'exécution Collection de séquences entrantes pour votre application de messagerie fiable.
- Sélectionnez toutes les séquences entrantes, puis cliquez sur Supprimer la séquence et les messages pour supprimer les séquences.
- Naviguez jusqu'au panneau d'exécution Collection de séquences sortantes, puis répétez les précédentes étapes pour les séquences sortantes.
Lorsqu'un serveur d'applications démarre, un moteur de messagerie utilisé pour la messagerie fiable est signalé comme étant indisponible
Lors de l'utilisation d'une messagerie fiable dont la qualité de service est gérée, le message d'exception suivant risque d'apparaître lors du démarrage du serveur d'applications :
CWSIT0019E : Aucun moteur de messagerie approprié n'est disponible sur le bus votreBus correspondant aux propriétés de connexion spécifiées
Dans un environnement de déploiement réseau, cet incident peut se produire car le moteur de messagerie se trouve sur un serveur d'applications ou un membre de cluster qui a démarré après le serveur qui héberge votre application de messagerie fiable. Dans ce cas, il vous suffit de patienter ; la messagerie fiable continue ses tentatives de connexion jusqu'à ce que le moteur de messagerie soit disponible.
- Vérifiez que le moteur de messagerie indiqué et le bus d'intégration de services existent.
- Consultez le journal de sortie système pour vous assurer que le serveur hébergeant le moteur de messagerie a démarré.
Une application client ne peut pas appeler un service Web prenant en charge la messagerie fiable
- Le noeud final est disponible.
- Le service est en cours d'exécution.
- Le service a été appelé.
- WS-ReliableMessaging est en cours d'exécution.
- WS-ReliableMessaging est correctement configuré. En particulier, pour l'une ou l'autre des qualités de service gérées, vérifiez que vous avez configuré une liaison valide à un moteur de messagerie et un bus d'intégration de service et que le moteur de messagerie est en cours d'exécution. Pour plus d'informations, voir Association et liaison d'un ensemble de règles WS-ReliableMessaging à une application de services Web à l'aide de la console d'administration ou Association et liaison d'un ensemble de règles WS-ReliableMessaging à une application de services Web à l'aide de l'outil wsadmin.
- Le nombre d'applications partageant un seul moteur de messagerie est trop important. Remarque : L'utilisation du même moteur de messagerie par plusieurs applications peut affecter la performance. Les facteurs à prendre en considération sont le nombre d'applications déjà liées au moteur de messagerie, l'utilisation de l'unité centrale et le débit des messages. Pour améliorer les performances d'une configuration avec un serveur unique, créez un nouveau moteur de messagerie à lier à votre application.
Une séquence n'est pas établie et WS-ReliableMessaging ne peut pas garantir la transmission des messages
Après l'établissement d'une séquence, WS-ReliableMessaging assure la retransmission des messages à un service. Cependant, si la séquence n'est pas établie, les messages ne sont pas transmis au service et un message similaire à l'exemple suivant s'affiche :
org.apache.axis2.AxisFault: The Create Sequence request has been refused by the RM Destination
Le message createSequence initial a été refusé. Il est renvoyé et donne lieu à l'échec du client. Pour plus d'informations sur CreateSequence et CreateSequenceRefused, voir la rubrique WS-ReliableMessaging : spécifications et normes prises en charge.
Un message expliquant la raison pour laquelle la demande a été refusée peut également s'afficher ultérieurement. Exemple :
Motif : javax.xml.ws.soap.SOAPFaultException: com.ibm.ws.sib.wsrm.exceptions.WSRMRuntimeException:
CWSJZ0202I : Aucune connexion au moteur de messagerie n'est disponible pour le bus monBus
.- Vérifiez que les ensembles de règles sont correctement appliqués. Vérifiez notamment que la messagerie fiable est correctement activée pour la destination.
- Consultez les journaux pour les incidents côté serveur.
- Pour la qualité de service permanente gérée, vérifiez que le moteur de messagerie associé est disponible.
Une séquence est établie mais ne peut pas être utilisée et WS-ReliableMessaging ne peut pas garantir la transmission des messages
Si une exception telle que la suivante est émise, cela signifie que la séquence est établie mais ne peut pas être utilisée :
javax.xml.ws.WebServiceException: org.apache.axis2.AxisFault: L'identificateur wsrm:Identifier n'est pas un identificateur de séquence connu.
.Le motif le plus courant est que vous travaillez dans un environnement à clusters et que votre ensemble de règles côté serveur indique la qualité de service non permanente non gérée. Par exemple : l'ensemble de règles par défaut WS-I RSP spécifie la qualité de service non permanente non gérée. Pour utiliser la messagerie asynchrone dans un environnement à clusters, vous devez utiliser une qualité de service gérée pour permettre aux membres des clusters de corréler l'état de la messagerie fiable. Pour ce faire, utilisez l'ensemble de règles par défaut WS-I RSP ND ou modifiez votre ensemble de règles personnalisées de façon à ce que la règle WS-ReliableMessaging spécifie une qualité de service gérée et une liaison associée à un bus d'intégration de service et à un moteur de messagerie. Pour plus d'informations sur la procédure à suivre, voir Configuration d'un ensemble de règles WS-ReliableMessaging à l'aide de la console d'administration et Association et liaison d'un ensemble de règles WS-ReliableMessaging à une application de services Web à l'aide de la console d'administration.
Le magasin géré de la messagerie fiable n'est pas initialisé car la liaison d'ensemble de règles est incomplète ou non valide
Si l'ensemble de règles indique une qualité de service gérée et que vous n'avez pas défini de liaison vers un moteur de messagerie pour la prise en charge de cette qualité de service, le message d'exception suivant est émis :
CWSKA0102E : Le gestionnaire de stockage de messagerie fiable de services Web n'a pas pu être initialisé car la liaison de l'ensemble de règles est incomplète ou non valide
.Vous avez peut-être rattaché un ensemble de règles géré à votre application et vous avez utilisé les liaisons par défaut (qui ne prennent pas en charge les qualités de service gérées). Vous devez créer pour votre application une liaison qui spécifie un bus d'intégration de service et un moteur de messagerie pour la prise en charge des qualités de service gérées. Pour ce faire, voir Association et liaison d'un ensemble de règles WS-ReliableMessaging à une application de services Web à l'aide de la console d'administration.
La messagerie fiable est interrompue car un serveur est indisponible
La mise en clusters offre une protection maximale contre l'indisponibilité des serveurs. Elle fournit des noeuds finaux de service à haute disponibilité, ainsi que la haute disponibilité (via le bus d'intégration de service) de la couche messagerie fiable.
Pour plus d'informations sur la configuration de la haute disponibilité des services web et des moteurs de messagerie, voir Equilibrage des charges de travail et Ajout d'un moteur de messagerie dans un cluster.
Erreurs de dépassement de délai de socket lors de l'exécution de plusieurs applications client de messagerie fiable dans un cluster
Lorsque de nombreuses applications utilisent le même moteur de messagerie, cela peut avoir une incidence sur les performances et, dans certains cas, conduire à des erreurs de dépassement de délai.
Pour plus d'informations sur la configuration de la haute disponibilité des services web et des moteurs de messagerie, voir Equilibrage des charges de travail et Ajout d'un moteur de messagerie dans un cluster.
Un message n'est pas récupéré une fois qu'un serveur n'est plus disponible
Lorsque la couche messagerie fiable reçoit un message de demande, elle envoie un accusé de réception puis distribue le message au service cible. Il est possible que le serveur hébergeant la couche messagerie fiable ne soit plus disponible après l'accusé de réception du message de demande et avant la distribution de ce dernier. Dans ce cas, le message est uniquement récupéré si vous utilisez une distribution dans l'ordre, ainsi qu'une qualité de service permanente gérée. Pour définir la distribution dans l'ordre, sélectionnez l'option de règle WS-ReliableMessaging "Distribuer les messages dans l'ordre dans lequel ils ont été envoyés", comme décrit dans la rubrique Configuration de la règle WS-ReliableMessaging.
Un message d'exception indique que le jeton de contexte de sécurité n'est pas valide
Lors de l'utilisation de la messagerie fiable à l'aide d'un profil WS-I RSP persistant et de WS-SecureConversation, un message d'exception indique que le jeton de contexte de sécurité n'est pas valide.
CWWSS7215E : Impossible d'obtenir un jeton de contexte de sécurité valide à partir de la mémoire cache.
Pour vous assurer que le jeton de contexte de sécurité de sectorisation n'arrive pas expiration avant que WS-ReliableMessaging récupère et re-transmette ses messages, effectuez la tâche suivante : Configuration de WS-SecureConversation de manière à ce qu'elle soit compatible avec WS-ReliableMessaging.
![[z/OS]](../images/ngzos.gif)
Une région de serviteur subit une fin anormale d'expiration lorsque vous utiliser une qualité de service géré.
Cette situation peut être provoquée par la valeur de la propriété personnalisée sib.wsrm.tokenLockTimeout qui est trop élevée. Cette propriété est définie dans le moteur de messagerie spécifié dans la liaison de règle WS-ReliableMessaging. La valeur doit être inférieure au délai d'attente de la région de contrôle avant l'arrêt d'une région de serviteur inactive. Pour plus d'informations sur cette propriété, voir Propriétés personnalisées d'intégration de services.