Cette section décrit les problèmes connus de base de données haute disponibilité (HADB) et les solutions associées.
Le contrôle du plug-in de l'équilibreur de charge génère un certain nombre de connexions/déconnexions à l'arrière-plan (charge). Une unité d'exécution runDaemonMonitor effectue des contrôles de maintenance en exécutant une opération de connexion/déconnexion pour chaque listener du serveur d'application. Ceci peut entraîner une saturation de la connexion sur Enterprise Server.
Un nouvel attribut, monitor-interval-in-seconds, a été développé pour le fichier loadbalancer.xml. Cet attribut peut être utilisé pour insérer une pause entre les connexions/déconnexions au cas où des centaines de listeners sont configurés pour le plug-in de l'équilibreur de charge. La valeur de la pause par défaut est de 0.
Sous Solaris SPARC, les bases de données HADB configurées avec double réseau fonctionnent parfaitement sur deux sous-réseaux. Cependant, du fait de problèmes au niveau du système d'exploitation ou des pilotes réseau sur certaines plates-formes matérielles, les plates-formes Solaris x86 et Linux ne gèrent pas toujours correctement les doubles réseaux. Cela crée les problèmes suivants pour la base de données HADB:
Sous Linux, certains processus HADB sont bloqués lors de l'envoi de messages, entraînant le redémarrage du nœud HADB et le partitionnement du réseau.
Sous Solaris x86, certains problèmes peuvent se produire après une panne réseau, empêchant le basculement vers une autre interface réseau. Bien que cela ne se produise pas tout le temps, il est préférable d'utiliser deux réseaux au lieu d'un. Ces problèmes sont partiellement résolus sous Solaris 10.
L'agrégation n'est pas prise en charge.
Les bases de données HADB ne prennent pas en charge les doubles réseaux sous Windows2003 (ID 5103186).
La création d'une base de données risque d'échouer en générant l'erreur suivante, indiquant que le nombre de segments de mémoire partagée disponibles est insuffisant :
HADB-E-21054: System resource is unavailable: HADB-S-05512: Attaching shared memory segment with key "xxxxx" failed, OS status=24 OS error message: Too many open files.
Vérifiez que la mémoire partagée est correctement configurée. En particulier, sous Solaris 8, inspectez le fichier /etc/system et assurez-vous que la valeur de la variable shmsys: shminfo_shmseg est au moins six fois supérieure au nombre de nœuds par hôte.
Lorsque vous augmentez la taille des périphériques ou du tampon à l'aide de la commande hadbm set, le système de gestion vérifie la disponibilité des ressources lors de la création des bases de données ou de l'ajout de nœuds. Cependant, il ne vérifie pas si un nombre suffisant de ressources est disponible lors de la modification de la taille des périphériques ou du tampon de la mémoire principale.
Vérifiez qu'il y a suffisamment d'espace disque ou de mémoire disponible sur tous les hôtes avant d'augmenter les attributs de configuration devicesize ou buffersize.
Il est impossible d'enregistrer le même package avec le même nom à différents emplacements et sur différents hôtes ; par exemple :
hadbm registerpackage test --packagepath=/var/install1 --hosts europa11 Package successfully registered. hadbm registerpackage test --packagepath=/var/install2 --hosts europa12 hadbm:Error 22171: A software package has already been registered with the package name test. |
La base de données HADB ne prend pas en charge les chemins hétérogènes sur plusieurs nœuds d'un cluster de base de données. Assurez-vous que le répertoire d'installation du serveur HADB (--packagepath) est le même pour tous les hôtes concernés.
Si l'agent de gestion est exécuté sur un hôte avec plusieurs interfaces réseau, la commande createdomain risque d'échouer si toutes les interfaces réseau ne se trouvent pas sur le même sous-réseau :
hadbm:Error 22020: The management agents could not establish a domain, please check that the hosts can communicate with UDP multicast. |
Les agents de gestion utiliseront (s'ils n'ont pas été configurés autrement), la "première" interface de multidiffusions UDP (la "première" étant déterminée par le résultat de java.net.NetworkInterface.getNetworkInterfaces() ).
La meilleure solution consiste à indiquer à l'agent de gestion quel sous-réseau utiliser (en définissant ma.server.mainternal.interfaces dans le fichier de configuration, par exemple ma.server.mainternal.interfaces=10.11.100.0). Une autre solution consiste à configurer le routeur entre les sous-réseaux de manière à acheminer les paquets multidiffusions. (L'agent de gestion utilise l'adresse multidiffusion 228.8.8.8.)
Avant de réessayer avec une nouvelle configuration des agents de gestion, vous devrez peut-être nettoyer le référentiel des agents de gestion. Arrêtez tous les agents du domaine et supprimez tous les fichiers et répertoires du répertoire du référentiel (identifié par repository.dr.path dans le fichier de configuration de l'agent de gestion). Cette opération doit être effectuée sur tous les hôtes avant de redémarrer les agents avec le nouveau fichier de configuration.
Sous Solaris 10 Opteron, le démarrage, l'arrêt ou la reconfiguration de HADB à l'aide de la commande hadbm risque d'échouer ou de se bloquer, en générant l'une des erreurs suivantes :
hadbm:Error 22009: The command issued had no progress in the last 300 seconds. HADB-E-21070: The operation did not complete within the time limit, but has not been cancelled and may complete at a later time. |
Cette erreur peut se produire s'il existe des incohérences lors de l'écriture ou de la lecture d'un fichier nomandevice) utilisé par le processus clu_noman_srv. Vous pouvez détecter ce problème en recherchant l'un des messages suivants dans les fichiers de l'historique de HADB :
n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Child process noman3 733 does not respond. n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Have not heard from it in 104.537454 sec. n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Child process noman3 733 did not start. |
La solution suivante n'a pas été vérifiée, car le problème n'a pas été reproduit manuellement. Cependant, l'exécution de cette commande pour le nœud affecté devrait résoudre le problème.
hadbm restartnode --level=clear nodeno dbname |
Notez que tous les périphériques associés au nœud seront réinitialisés. Vous devrez peut-être arrêter le nœud avant de le réinitialiser.
Si vous démarrez l'agent de gestion sur un hôte exécutant Solaris 8 et sur lequel plusieurs cartes réseau sont installées et que IPv6 et IPv4 sont activés simultanément, l'agent de gestion s'arrête et génère l'exception "IPV6_MULTICAST_IF failed".
Paramétrez la variable d'environnement JAVA_OPTIONS sur -Djava.net.preferIPv4Stack=true ; par exemple :
export JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true" |
Une autre solution consiste à utiliser Solaris 9 ou ultérieur, qui ne présente pas ce problème.
Un bogue dans la version 64 bits de Red Hat Enterprise Linux 3.0 met fin au processus clu_trans_srv à un mode sans interruption en exécutant des E/S asynchrones. Ceci signifie que kill -9 ne fonctionne pas et que le système d'exploitation doit être redémarré.
Utilisez la version 32 bits de Red Hat Enterprise Linux 3.0.
Les lettres en majuscules sont converties en minuscules lorsqu'un mot de passe est stocké dans hadb.
N'utilisez pas de mots de passe contenant des lettres en majuscules.
Lors d'une mise à niveau inférieur d'une version HADB, l'agent de gestion peut échouer avec différents codes d'erreur.
Il est possible de mettre la base de données HADB à un niveau inférieur, mais ce n'est pas le cas pour l'agent de gestion si des modifications ont été apportées à des objets du référentiel. Une fois la mise à niveau inférieur effectuée, vous devez continuer à utiliser l'agent de gestion provenant de la version HADB la plus récente.
Lors de l'installation/de la suppression du package c HADB (Solaris : SUNWhadbc, Linux : sun-hadb-c) version <m.n.u-p>, le lien symbolique symlink /opt/SUNWhadb/<m> existant n'est jamais affecté. Il est donc possible qu'un lien symbolique orphelin symlink existe.
Supprimez le lien symbolique symlink avant l'installation ou après la désinstallation, sauf s'il est en cours d'utilisation.
Sous Solaris 10, l'arrêt d'un agent de gestion par le biais du script ma-initd dans une zone globale provoque également l'arrêt de l'agent de gestion de la zone locale.
N'installez l'agent de gestion que dans une de ces zones.
Il peut arriver qu'un problème de conflit d'utilisation des ressources sur un serveur entraîne la déconnexion d'un client de gestion. Lors de la reconnexion, un message d'erreur trompeur, "hadbm: Error 22184: A password is required to connect to the management agent", peut être renvoyé.
Il peut arriver qu'un problème de conflit d'utilisation des ressources sur un serveur entraîne la déconnexion d'un client de gestion. Lors de la reconnexion, un message d'erreur trompeur, "hadbm: Error 22184: A password is required to connect to the management agent", peut être renvoyé.
Vérifiez s'il y a un problème de ressources sur le serveur, prenez les mesures nécessaires (par exemple, ajoutez des ressources) et relancez l'opération.
Une installation par le biais de Java Enterprise System (en tant que root) ne permet pas aux utilisateurs non root de gérer la base de données HADB.
Connectez-vous toujours en tant que root pour pouvoir gérer la base de données HADB.
Les interfaces spécialisées portant des adresses IP comme 0.0.0.0 ne doivent pas être enregistrées comme des interfaces pouvant être utilisées pour des nœuds HADB dans l'agent de gestion. L'enregistrement de telles interfaces peut entraîner des problèmes si des nœuds HADB sont définis sur ces interfaces via une commande utilisateur hadbm create utilisant des noms d'hôtes à la place d'adresses IP. Les nœuds ne pourront plus communiquer, interrompant ainsi la commande create.
Lorsque vous utilisez hadbm create sur des hôtes à plusieurs interfaces, spécifiez toujours les adresses IP à l'aide d'une notation DDN.
Sous Windows, avec certaines configurations et charges, un grand nombre d'échecs de réassemblage peut se produire dans le système d'exploitation. Le problème a été observé avec des configurations de plusieurs vingtaines de nœuds lors de l'exécution de plusieurs analyses parallèles de tables (select *). Les signes peuvent être tels que les transactions sont fréquemment abandonnées, la réparation ou la récupération peut prendre du temps et des délais d'expiration fréquents peuvent se produire dans différentes parties du système.
Pour résoudre le problème, la variable du registre Windows HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters peut être définie sur une valeur supérieure à celle par défaut de 100. Il est recommandé d'augmenter cette valeur à 0x1000 ( 4096). Pour plus d'informations, consultez l' article 811003 tiré des pages de support de Microsoft.
Les cookies comportant un chemin équivalent à “/” interfèrent avec les cookies d'une application Web hautement disponible déployée sur une racine contexte autre que “/” et utilisant la réplication en mémoire comme type de persistance, ce qui empêche ainsi l'application Web de conserver tout état de session HTTP. Ce problème peut par exemple survenir lorsque vous utilisez le même navigateur pour accéder à l'IG d'administration (déployée sur « / » ) et à l'application Web hautement disponible.
Accédez à l'application Web déployée sur « / » à partir d'un autre navigateur.
Les fichiers SASL32.DLL et ZLIB.DLL sont nécessaires au fonctionnement de l'équilibreur de charge avec Windows IIS 6. Ces fichiers ne sont actuellement pas disponibles sous as-install/lib.
Copiez les deux fichiers DLL manuellement vers as-install/lib. Vous pouvez les télécharger à partir de :
http://download.java.net/javaee5/external/OS/aslb/jars/ |
où OS correspond à la plate-forme choisie parmi les valeurs suivantes :
SunOS ;
SunOS_X86
Linux
WINNT.
Deux problèmes surviennent lors de l'installation ou de la désinstallation d'Enterprise Server avec des packages haute disponibilité dans une zone globale :
ceux-ci sont installés dans toutes les zones, ce qui peut ne pas être souhaitable.
Lors de la désinstallation, les packages HA, MQ et JDK sont supprimés de toutes les zones, ce qui peut ne pas être souhaitable.
Ce problème ne survient pas lors des opérations d'installation ou de désinstallation à partir d'une zone racine locale.
Effectuez les opérations d'installation et de désinstallation à partir d'une zone racine locale plutôt que d'une zone globale.
Les applications Web hautement disponibles déployées sur « / » ne peuvent pas conserver de sessions HTTP lorsqu'elles utilisent la réplication en mémoire comme type de persistance.
Déployez les applications Web hautement disponibles, utilisant la réplication en mémoire comme type de persistance, vers une racine contexte autre que « / ». Si vous souhaitez qu'une telle application Web soit disponible sur « / », vous pouvez désigner ce dernier en tant que module Web par défaut du serveur virtuel vers lequel l'application Web a été déployée.
Lors de l'installation de l'équilibreur de charge d'Enterprise Server pour Apache sous Solaris, le programme d'installation met à jour le chemin LD_LIBRARY_PATH dans le script apachectl . Cependant, le programme d'installation n'écrit pas correctement le chemin /usr/lib/mps. Sous Solaris, l'instance de sécurité Apache ne pourra pas démarrer sans ce chemin dans LD_LIBRARY_PATH.
Ce problème est particulier aux plates-formes Solaris. Pour le contourner, ajoutez /opt/SUNWappserver/appserver/lib/lbplugin/lib à votre chemin LD_LIBRARY_PATH.
Le bouton Activer l'équilibreur de charge est toujours activé sur la page principale relative à l'instance/au cluster, quel que soit le contenu de domain.xml.
Pour les instances clusterisées, sélectionnez l'onglet Instances, puis cliquez sur l'action Mettre en attente à partir du menu déroulant.
Pour les instances autonomes, assurez-vous que l'instance est en cours d'exécution, puis cliquez sur le bouton Mettre en attente sur l'écran principal de l'instance.
(Solaris uniquement) Une fois Enterprise Server 2.1 installé sous SPARC Solaris 10 avec HADB, vous pouvez recevoir l'erreur suivante après le démarrage de Enterprise Server et la tentative d'installation de JES 5 UR1 avec Registry Server :
Dependency Error: Installation can not proceed because the version of HA Session Store 4.4.3 detected on this host is incomplete , and a compatible version is required by Servervice Registry Deployment Support. |
Vous ne pouvez pas installer Registry Server à partir de JES 1 UR1 avec avec l'IFR Enterprise Server 2.1 sur des machines Solaris. Vous devez installer manuellement les packages de Registry Server à l'aide de la commande pkgadd à partir du répertoire de distribution JES5 UR1 suivant :
path/OS/Products/registry-svr/Packages |
(Internet Explorer 6 et 7 uniquement) Lors de la tentative d'exportation du fichier de configuration de l'équilibreur de charge (loadbalancer.xml) à partir d'Internet Explorer 6 ou 7, le navigateur affiche un message d'erreur indiquant que le fichier DTD sun-loadbalancer_1_2.dtd est introuvable.
Pour enregistrer le fichier, procédez comme suit :
Cliquez sur Exporter sur la page de l'équilibreur de charge sous Internet Explorer.
Le message « La page XML ne peut pas être affichée » s'affiche.
Cliquez sur ce message, puis choisissez Fichier->Enregistrer sous à partir d'Internet Explorer.
Enregistrez le fichier loadbalancer.xml dans le répertoire de votre choix.