Traitement des incidents liés à la collectivité Liberty
Vous pouvez rencontrer une série de problèmes courants lors du traitement des incidents dans Liberty. Ces problèmes concernent généralement la configuration du contrôleur de collectivité, d'un membre ou d'un système hôte. Parcourez la liste des problèmes pour en savoir plus sur la manière de les résoudre.
- Problèmes liés à la connexion
- CWWKX0217E: No MBean is currently registered with the given object_name
- CWWKX0215E: There was a problem with the user name or password provided
- CWWKX8057I: The collective member is unable to establish a connection to any of the collective controllers. Configured controllers: [host_name:port_number]
- Erreur : Connection refused: connect
- java.net.SocketException error
- Problèmes concernant les commandes
start et stop
- L'arrêt ou le démarrage des serveurs à distance génère une erreur indiquant que Java est introuvable
- CTGRI0000E: Could not establish a connection to the target machine with the authorization credentials that were provided
- CTGRI0001E: The application could not establish a connection to host_name
- CTGRI0026E A connection could not be completed to host_name during the specified timeout interval
- CWWKX6027E: The collective controller initialization did not succeed. The socket bind did not succeed for host host_name and port port_number. The port might already be in use or the host does not match the system configuration.
- CWWKX7204E: Cannot connect to host host_name with the credentials provided
- Problèmes impliquant l'administration de la collectivité
Pour la résolution d'autres erreurs, consultez la section Liberty : Problèmes et restrictions connues concernant l'environnement d'exécution.
Problèmes concernant la connexion CLI, Jython ou MBean avec le connecteur REST
- CWWKX0217E: No MBean is currently registered with the given object_name
- Message :
Cause :Erreur : CWWKX0217E: No MBean is currently registered with the given ObjectName 'WebSphere:feature=collectiveController,type=CollectiveRegistration,name=CollectiveRegistration'
Il se peut que le bean géré ne soit pas encore disponible. Consultez les journaux du serveur pour déterminer si le bean géré est prêt.
Le référentiel de collectivités risque de ne pas être démarré. Déterminez si le référentiel de la collectivité est démarré.
Si la cible est un contrôleur de collectivité, vérifiez que le jeu de répliques est actif. Si la plupart des répliques du contrôleur de collectivité ne sont pas démarrées, ce message s'affiche. Démarrez les répliques restantes.
Il se peut que la configuration du serveur soit incomplète. Vérifiez que le serveur est configuré correctement.
- CWWKX0215E: There was a problem with the user name or password provided.
- Message :
Cause :Erreur : CWWKX0215E: There was a problem with the user name or password provided. The server responded with code 401 and message 'Unauthorized'
Il est possible que le nom d'utilisateur et le mot de passe soit incorrects. Vérifiez que le nom d'utilisateur et le mot de passe sont corrects pour le serveur cible.
Il se peut que l'utilisateur ne possède pas le rôle Administrateur. Vérifiez que l'utilisateur possède le rôle Administrateur ou choisissez un autre utilisateur.
Il se peut que la configuration de la sécurité pour le serveur cible soit incomplète. Vérifiez que la configuration de sécurité est définie et que le service de sécurité est prêt (CWWKS0008I).
- CWWKX8057I: The collective member is unable to establish a connection to any of the collective controllers. Configured controllers: [host_name:port_number]
- Message :
Cause :CWWKX8057I: The collective member is unable to establish a connection to any of the collective controllers. Configured controllers: [test.ibm.com:8889]
Il se peut que les serveurs ne soient pas démarrés. Vérifiez que le contrôleur de collectivité et les serveurs membre sont en cours d'exécution.
Si les serveurs sont en cours d'exécution, déterminez si la configuration SSL dans le fichier server.xml du contrôleur ou d'un membre a été récemment modifiée. Si le CWWKX8057I est émis dans le membre, il est probable que le contrôleur comporte une configuration SSL incorrecte. Si ce message apparaît dans le contrôleur, il est probable qu'un membre comporte une configuration SSL incorrecte. Ce problème peut survenir lorsqu'une configuration n'utilise pas un élément quickStartSecurity.
Pour résoudre un problème lié à la configuration SSL, effectuez les vérifications suivantes dans le fichier server.xml :
Par défaut, <sslDefault sslRef> pointe sur defaultSSLSettings. Si vous modifiez <sslDefault sslRef> dans la configuration du contrôleur de collectivité afin qu'il pointe sur autre chose que defaultSSLSettings, par exemple <sslDefault sslRef="LDAPSSLSettings"/>, l'erreur CWWKX8057I se produit à moins que la configuration ne comporte clientAuthenticationSupported="true" et que le serveur Liberty fasse confiance à un homologue SSL comportant un certificat client.
Les paramètres SSL pour HTTPS doivent faire confiance aux certificats de collectivité. Si vous modifiez <sslDefault sslRef> afin qu'il pointe sur autre chose que defaultSSLSettings sans clientAuthenticationSupported="true", cela peut déconnecter defaultSSLSettings de sa configuration HTTPS. Les paramètres SSL de collectivité font partie de la configuration par défaut.
Pour plus d'informations, voir Mappage du rôle d'administrateur pour Liberty, Configuration de registres d'utilisateurs LDAP dans Liberty et Configuration d'un httpEndpoint pour utiliser une configuration SSL autre que la configuration par défaut.
- Erreur : Connection refused: connect
- Message :
Cause :Erreur : Connection refused: connect
Il se peut que l'hôte et le port soit incorrects. Vérifiez que l'hôte et le port sont corrects pour le serveur cible.
Il se peut que le serveur ne soit pas démarré. Vérifiez que le serveur est démarré.
- java.net.SocketException error
- Message :
Cause :java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)(possibly others...)
Il se peut que le fichier de clés certifiées et son mot de passe soient incorrects. Vérifiez que le chemin d'accès au fichier de clés certifiées, le mot de passe du fichier de clés certifiées et le contenu du fichier de clés certifiées sont corrects.
Problèmes concernant les commandes start et stop
- L'arrêt ou le démarrage des serveurs à distance génère une erreur indiquant que Java est introuvable
- Message :
Starting or stopping the servers remotely (by using ClusterManager.startCluster or ServerCommands.startServer for example) encounters the following error:
Solution :{stderr=java: javaCmd 14: serverCmd 32: ./server 873: FSUM7351 not found, stdout=, returnCode=127}
The member servers need a server.env file that specifies a JAVA_HOME variable.
- CTGRI0000E: Could not establish a connection to the target machine with the authorization credentials that were provided.
- Message :
Cause :CTGRI0000E Could not establish a connection to the target machine with the authorization credentials that were provided.
L'authentification échoue en utilisant un nom d'utilisateur et un mot de passe :- Vérifiez que le nom d'utilisateur et le mot de passe sont corrects dans l'élément <hostAuthConfig> du fichier server.xml du serveur cible.
- Mettez à jour la configuration de l'authentification d'hôte à l'aide de la commande de collectivité updateHost.
L'authentification échoue avec les clés ssh : - CTGRI0001E: The application could not establish a connection to host_name.
- Message :
Cause :{ExceptionMessage=ConnectException caught while performing stopCluster operation on member webp1a.ibm.com,/P1A/WebSphere_LP/usr,memberA1: java.net.ConnectException: CTGRI0001E The application could not establish a connection to webp1a.ibm.com., Exception=java.net.ConnectException: CTGRI0001E The application could not establish a connection to webp1a.ibm.com.}
Le démarrage ou l'arrêt de serveurs à distance à l'aide de commandes telle que ClusterManager.startCluster ou ServerCommands.startServer peut générer cette erreur.
Le message CTGRI0001E, ainsi que le message CTGRI0026E, peuvent indiquer que trop de connexions SSH simultanées sont effectuées à un hôte. Les causes possibles sont les suivantes :- Autonomes, par exemple un contrôleur de mise à l'échelle
- Exécution des commandes ClusterManager.startCluster, ServerCommands.startServer ou d'autres commandes de gestion du système sur un certain nombre de serveurs sur un seul hôte et dont le nombre dépasse le nombre maximum de connexions non authentifiées simultanées au serveur SSH.
Solution :
Confirmez que le mécanisme RPC (SSH, par exemple) est démarré. Confirmez également que les paramètres configurés, par exemple, l'hôte et le port, sont corrects.
Si votre environnement utilise SSH, modifiez les paramètres du fichier de configuration SSH. Le paramètre de configuration SSH MaxStartups comporte par défaut 10 connexions non authentifiées simultanées. La modification du paramètre MaxStartups dans le fichier de configuration SSH, /etc/ssh/sshd_config, peut résoudre le problème. Le paramètre MaxStartups indique le nombre maximum de connexions non authentifiées simultanées au serveur SSH. Les connexions supplémentaires sont supprimées jusqu'à ce que l'authentification aboutisse ou jusqu'à ce que LoginGraceTime expire pour une connexion. Vous pouvez activer une suppression anticipée aléatoire en indiquant les trois valeurs suivantes séparées par un deux points : start:rate:full (par exemple, 10:30:60). sshd(8) refuse les tentatives de connexion avec une probabilité de rate/100 (30%) s'il existe actuellement start (10) connexions non authentifiées. Cette probabilité s'accroît de façon linéaire et toutes les tentatives de connexion sont refusées si le nombre de connexions non authentifiées atteint full (60). Les exemples suivants de paramètres de fichier configuration SSH indiquent MaxStartups et d'autres paramètres qui peuvent atténuer es problèmes de connexion :
Pour plus d'informations sur le protocole Secure Shell (SSH) et la modification des paramètres /etc/ssh/sshd_config, voir Configuration de RXA pour les opérations de collectivité Liberty.ClientAliveInterval 60 ClientAliveCountMax 3 MaxSessions 100 MaxStartups 100:30:200 LoginGraceTime 180
- CTGRI0026E A connection could not be completed to host_name during the specified timeout interval.
- Message :
Cause :CTGRI0026E A connection could not be completed to webp1a.ibm.com during the specified timeout interval.
Un trop grand nombre de connexions SSH à un hôte peut provoquer cette erreur.
Solution :Voir la solution pour le message CTGRI0001E.
- CWWKX6027E: The collective controller initialization did not succeed. The socket bind did not succeed for host host_name and port port_number. The port might already be in use or the host does not match the system configuration.
- Message :
Solution :CWWKX6027E: The collective controller initialization did not succeed. The socket bind did not succeed for host * and port 10,010. The port might already be in use or the host does not match the system configuration.
Assurez-vous que la valeur hôte spécifiée dans la configuration du contrôleur de collectivité est correcte. Par exemple, si le contrôleur de collectivité réside sur myhost.com, vérifiez le fichier server.xml du contrôleur afin de vous assurer que la valeur hôte est correcte :
<variable name="defaultHostName" value="myhost.com" />
L'exemple de message indique un astérisque (*) pour l'hôte, ce qui suggère que la valeur hôte n'a probablement pas provoqué ce problème. La raison probable du problème est un conflit de port.
Assurez-vous que le numéro de port indiqué dans le message n'est pas déjà en cours d'utilisation. En ligne de commande sur l'ordinateur hôte où réside le contrôleur de collectivité, exécutez la commande netstat -a afin d'afficher une liste des numéros de port et l'état des connexions. Si le numéro de port est utilisé, la liste comporte une entrée telle que la suivante pour le port port 10,010 :
TCP 127.0.0.1:10010 myhost:0 LISTENING
Pour résoudre ce conflit de port, ouvrez un éditeur dans le fichier server.xml du contrôleur de collectivité et ajoutez une instruction qui définit replicaPort sur un numéro de port qui n'est pas utilisé sur l'ordinateur. L'une des instructions suivantes peut définir une valeur replicaPort :
- <collectiveController replicaPort="10011"/>
- <collectiveController replicaHost="myhost.com" replicaPort="10011"/>
- <collectiveController replicaPort="${prop.controller_1.replica}"/>
Définissez la variable pour le numéro de port, dont le nom est prop.controller_1.replica dans cette instruction, mais qui peut porter le nom de variable que vous choisissez, dans un fichier bootstrap.properties ou dans une balise XML <variable name="name" value="value"/>.
- CWWKX7204E : Impossible de se connecter à l'hôte nom_hôte avec les données d'identification fournies.
- Message :
Solution :localhost,C:/wlp,member1 stop operation resulted in an Exception: ConnectException caught while performing stopCluster operation on member localhost,C:/wlp,member1: java.net.ConnectException: CWWKX7204E: Cannot connect to host localhost with the credentials provided.
Vérifiez que les informations d'authentification du membre de cluster sont correctement définies et que toutes les exigences Remote Execution and Access (RXA) sont satisfaites. Un grand nombre d'opérations RXA requiert l'accès aux ressources qui ne sont généralement pas accessibles par les comptes utilisateur standard. Voir Configuration de RXA pour les opérations de collectivité Liberty.
Problèmes impliquant l'administration de la collectivité
- La commande de collectivité remove n'a pas supprimé un membre de cluster auto-ajusté de la collectivité
- Message :
Solution :Specified server Cluster1 was not found at location ${wlp.install.dir}/Cluster1.zip/wlp/usr No collective resources were removed. Specified userDir ${wlp.install.dir}/Cluster1.zip/wlp/usr was not found
La pratique standard consiste à supprimer manuellement les membres de cluster auto-ajustés d'une collectivité. Le contrôleur de mise à l'échelle gère automatiquement la collectivité. Voir Configuration de clusters avec application des accès pour l'élasticité Liberty.
Cependant, si vous avez besoin de supprimer un membre de cluster qu'un contrôleur de mise à l'échelle a ajouté à une collectivité, vous pouvez définir les variables d'environnement WLP_USER_DIR et JAVA_HOME puis exécuter la commande de collectivité remove pour supprimer le membre de cluster de la collectivité.
- Définissez WLP_USER_DIR sur l'emplacement du membre de cluster auto-ajusté que vous souhaitez supprimer.
export WLP_USER_DIR=/wlp.usr/defaultStackGroup.Cluster1/d16d298c-ea7f-4782-bef6-2e54fb80de20/Cluster1.zip/wlp/usr
- Si Java ne peut pas être exécuté à partir de l'emplacement du membre de cluster auto-ajusté, définissez JAVA_HOME de manière à pouvoir exécuter une commande Liberty
pour supprimer le membre du cluster.
export JAVA_HOME=/wlp.jre/jre.18.zip/
- Arrêtez le membre du cluster.
/wlp/wlp.855.zip/wlp/bin/server stop Cluster1
- Exécutez la commande collective remove pour supprimer le membre du cluster de la collectivité.
/wlp/wlp.855.zip/wlp/bin/collective remove Cluster1 --host=controllerHost --port=9443 --user=admin --password=password
- Définissez WLP_USER_DIR sur l'emplacement du membre de cluster auto-ajusté que vous souhaitez supprimer.