Dépannage d'un service ArcSDE
La plupart des problèmes associés au démarrage d'un service ArcSDE se produisent à cause d'un problème lié à l'environnement du système. Souvent, une étape primordiale a été omise pendant l'installation ou la configuration du logiciel.
Les conseils de dépannage de cette rubrique référencent plusieurs commandes d'administration. Consultez le manuel ArcSDE Administration Command Reference, fourni avec le serveur d'applications ArcSDE, pour en savoir plus sur l'utilisation des commandes.
Identification des problèmes
-
L'Observateur d'événements Windows
Pour les installations sur un système d'exploitation Windows, vous pouvez utiliser l'Observateur d'événements Windows pour rechercher d'éventuels problèmes. L'Observateur d'événements Windows fournit des informations diagnostiques qui peuvent aider à expliquer les problèmes de démarrage d'ArcSDE. Pour utiliser l'Observateur d'événements Windows :
- Ouvrez le Panneau de configuration.
- Dans le menu Panneau de configuration, double-cliquez sur Outils d'administration.
- Dans le menu Outils d'administration, cliquez sur Services de composant.
- Dans le menu Services de composant, développez le dossier Observateur d'événements et sélectionnez l'option Application.
- Recherchez une icône de stop rouge dans la colonne Type et le nom correspondant du service ArcSDE dans la colonne Source. Double-cliquez sur l'entrée du service ArcSDE pour afficher la fenêtre Détails de l'événement.
- Cette fenêtre comprend une description du problème.
-
Fichiers journaux des erreurs
ArcSDE et tous les systèmes de gestion de bases de données (SGBD) pris en charge créent un suivi de leurs activités en inscrivant des messages d'événements dans les fichiers journaux ASCII. Les fichiers journaux peuvent être examinés pour retrouver des erreurs qui se sont produites. ArcSDE écrit dans deux fichiers journaux : giomgr_<service>.log et sde_<service>.log. (Si vous utilisez une connexion directe, l'application écrit les messages d'erreur dans le fichier sdedc_<sgdb>.log au lieu du fichier sde_<service>.log du serveur d'application.)
- Fichier giomgr_<service>.log
Le fichier giomgr_<service>.log est un fichier ASCII qui contient une entrée pour toutes les activités du processus giomgr. (<service> correspond au nom du service ArcSDE.) Chaque fois qu'un utilisateur se connecte ou essaie de se connecter au service ArcSDE, un message est enregistré. Lorsque l'utilisateur se déconnecte, un autre message est enregistré. Le fichier giomgr_<service>.log capture également les procédures de démarrage et d'arrêt du service ArcSDE. Cependant, ce fichier ne contient pas de messages d'erreur spécifiques ; il vous indique uniquement l'activité du processus giomgr.
- Fichier sde_<service>.log
Chaque fois qu'un processus gsrvr rencontre un problème, le service ArcSDE enregistre une entrée dans le fichier sde_<service>.log. Parfois, les messages sont des avertissements ; d'autres fois, ils attirent votre attention sur des erreurs du service ArcSDE que vous devez corriger. Lorsque vous examinez le fichier sde_<service>.log, gardez à l'esprit que les messages sont écrits dans ce fichier lorsque des erreurs se produisent dans le processus du service ArcSDE. Parfois, une application ArcSDE indique un problème en rapport avec ArcSDE, mais cet événement n'apparaît pas dans le fichier sde_<service>.log. C'est parce que l'erreur s'est produite du côté du client ArcSDE et pas du côté du serveur. Depuis la version 9.3, le fichier sde_<service>.log stocke également des informations en cas d'envoi d'une requête avec une connexion incorrecte. Cette fonctionnalité permet de savoir si quelqu'un essaie de pirater le serveur. Voici un exemple d'entrée :
[Mon Mar 05 09:35:14 2007] [0] [GIOMGR] Invalid connection request length of -2147477504 from [10.47.6.5:32923] [Mon Mar 05 09:35:14 2007] [0] [GIOMGR] Could Not Get XDR Request.
Notez que l'entrée de journal répertorie l'adresse IP effectuant la requête de connexion. Dans ce message, la réponse "Could Not Get XDR Request" a été renvoyée parce que le giomgr n'a pas été en mesure d'accepter ou de comprendre la requête de connexion à cause d'une longueur incorrecte. Le fichier sde_<service>.log est tronqué chaque fois que le service ArcSDE est arrêté ou redémarré.
- Fichiers journaux des erreurs du SGBD
Chaque SGBD a sa propre manière d'enregistrer les erreurs. Consultez le guide d'administration de votre SGBD pour déterminer comment il enregistre les erreurs.
- Fichier giomgr_<service>.log
Dépannage du service ArcSDE sur les serveurs UNIX
Problèmes de variables du chemin d'accès au système
Si les variables du chemin d'accès au système ne sont pas définies ou qu'elles ne le sont pas correctement, vous pouvez obtenir les erreurs ci-dessous. Consultez le guide d'installation du serveur d'applications ArcSDE correspondant à votre SGBD pour apprendre à définir les variables du chemin.
- Si la variable d'environnement PATH n'inclut pas le répertoire $SDEHOME/bin, le message d'erreur suivant s'affiche :
sdemon: Command not found
- Si la variable d'environnement du chemin d'accès à la bibliothèque n'inclut pas le répertoire $SDEHOME/lib, le message d'erreur suivant s'affiche :
ld.so.1: sdemon: fatal: libsde90.so: open failed: No such file or directory Killed
- Si l'environnement du chemin d'accès à la bibliothèque n'inclut pas le répertoire de la bibliothèque du SGBD nécessaire, un message d'erreur semblable au suivant s'affiche :
ld.so.1: /ultra1/ora10gexe/bin/giomgr: fatal: libclntsh.so\: open failed: No such file or directory Killed Could not start ArcSDE - Check Network, $SDEHOME disk, DBMS settings and dbinit.sde.
Problèmes d'autorisation du fichier temporaire
Tous les fichiers temporaires ArcSDE existants dont l'administrateur ArcSDE n'est pas propriétaire renvoient le message d'erreur suivant :
ERROR: Cannot Initialize Shared Memory (-79) Delete /tmp/<service name> and /tmp<service name>.lock if present. Could not start ArcSDE - Check Network, $SDEHOME disk, DBMS settings and dbinit.sde.
Pour résoudre ce problème, supprimez les fichiers temporaires /tmp/<nom du service> et /tmp/<nom du service>.lock. Par exemple, si le nom du service est esri_sde, supprimez les fichiers /tmp/esri_sde et /tmp/esri_sde.lock. Vous devrez peut-être vous connecter en tant qu'utilisateur racine pour supprimer ces fichiers.
Les fichiers ont été supprimés du répertoire /tmp
Si, après avoir démarré le service ArcSDE, les fichiers stockés dans le répertoire /tmp sont supprimés, le service ArcSDE échoue lorsqu'un utilisateur se connecte ou se déconnecte. Le service dépend des fichiers du protocole Socket UNIX créés dans le répertoire /tmp. En règle générale, vous ne devez pas supprimer les fichiers du répertoire /tmp. Toutefois, s'il le faut absolument, vous devez arrêter le service ArcSDE avant de supprimer les fichiers. Reportez-vous à la rubrique Arrêter un service ArcSDE local sous Linux ou UNIX, Arrêter un service ArcSDE local sous Windows ou Arrêter un service ArcSDE distant pour savoir comment procéder.
Problèmes concernant le SGBD
- Si le SGBD n'est pas démarré, vous recevrez un message d'erreur semblable à celui-ci :
init_DB DB_instance_open_as_dba: -51 DBMS error code: 1034 ORA-01034: ORACLE not available Could not start ArcSDE - Check Network, $SDEHOME disk, DBMS settings, and dbinit.sde.
Vérifiez que l'instance de base de données a été démarrée et réessayez.
- Si le mot de passe de l'administrateur du service ArcSDE n'est pas correct, vous recevrez un message d'erreur semblable à celui-ci :
init_DB DB_instance_open_as_dba: -93 DBMS error code: 1017 ORA-01017: invalid username/password; login denied Could not start ArcSDE – Check Network, $SDEHOME disk, DBMS settings, and dbinit.sde.
Emettez à nouveau la commande en utilisant le bon mot de passe. Si vous l'avez oublié, vous devez contacter l'administrateur de la base de données pour le réinitialiser.
- Si l'administrateur du service ArcSDE n'existe pas, vous recevrez un message d'erreur semblable à celui-ci :
init_DB DB_instance_open_as_dba: -93 DBMS error code: 1017 ORA-01017: invalid username/password; login denied Could not start ArcSDE – Check Network, $SDEHOME disk, DBMS settings, and dbinit.sde.
Un administrateur du service ArcSDE doit être présent dans la base de données pour ArcSDE, avec la plupart des SGBD pris en charge. Si ce n'est pas le cas, vous (ou l'administrateur de base de données) devez en créer un.
L'erreur SE_OUT_OF_MUTEXES (-109) sur un serveur Solaris
Le système d'exploitation Solaris utilise des fichiers pour implémenter les sémaphores partagés avec POSIX qu'ArcSDE utilise. Si ces fichiers sont abandonnés après un échec du système d'exploitation ou une panne d'alimentation, ils peuvent parfois poser des problèmes. L'emplacement de ces fichiers est contrôlé par le système d'exploitation Solaris. Vous les trouverez dans les répertoires /tmp ou /var /tmp comme suit :
/tmp/.SEMD/ SDE_9.0_<instance>_iomgr_shared_semaphore /tmp/.SEML/ SDE_9.0_<instance>_iomgr_shared_semaphore
ou
/var/tmp/.SEMD/ SDE_9.0_<instance>_iomgr_shared_semaphore /var/tmp/.SEML/ SDE_9.0_<instance>_iomgr_shared_semaphore
Après un échec du système d'exploitation, si vous ne parvenez pas à démarrer le service ArcSDE et que vous recevez une erreur -109, c'est probablement à cause de l'existence des deux fichiers sémaphore partagés. Si vous trouvez l'un de ces fichiers dans les répertoires /tmp ou /var/tmp, supprimez-les et réessayez de démarrer le service ArcSDE.
Dépannage du service ArcSDE sur les serveurs Windows
Les erreurs rencontrées le plus souvent au démarrage d'un service ArcSDE sous Windows sont répertoriées ci-dessous. Cette liste inclut les numéros des erreurs (le cas échéant) et leurs causes possibles.
997 Erreur de démarrage du service esri_sde
Cette erreur peut se produire avec une installation ou une configuration incorrecte ou incomplète du serveur d'applications ArcSDE :
"ESRI_sde service failed during initialization. Please check event log or error log files. Error starting ESRI_sde service(997) Could not start ArcSDE — Check Network, $SDEHOME disk, DBMS settings"
Solution
- Vérifiez que le mot de passe correct a bien été saisi pour l'administrateur du service ArcSDE. Si un mot de passe incorrect est utilisé, une erreur -93 apparaît dans le fichier sde.errlog.
- Supprimez complètement le service ArcSDE en cours et créez-en un nouveau.
- Supprimez le service à l'aide de la commande sdeservice –o delete.
- Vérifiez le registre des clés de service orphelines. Regardez dans les répertoires suivants et supprimez le dossier ou la clé [esri_sde], le cas échéant :
HKEY_LOCAL_MACHINE > SOFTWARE > ESRI > ArcInfo > ArcSDE > ArcSDE pour [SGBD] > [nom_service]
HKEY_LOCAL_MACHINE > SYSTEM > ControlSet001 > Services > [nom_service]
HKEY_LOCAL_MACHINE > SYSTEM > ControlSet002 > Services > [nom_service]
HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > [nom_service]
- Redémarrez le serveur pour vider les modifications du registre.
- Tapez set à une invite de commande et vérifiez que %SDEHOME%\bin est la première entrée dans la variable d'environnement PATH (PATH=%SDEHOME%\bin;...).
- Vérifiez que le nom et le numéro de port du service ArcSDE de votre fichier %SDEHOME%\etc\services.sde correspond à l'entrée du fichier C:\WINNT ou WINDOWS\system32\drivers\etc\services.
- Naviguez jusqu'au répertoire %SDEHOME%\bin et recréez le sdeservice à l'aide de la commande sdeservice –o create.
- Exécutez la liste sdeservice –o et vérifiez que le nom de service et le chemin SDEHOME sont corrects.
Si le chemin SDEHOME contient deux barres obliques inverses (\\) ou que la fin du chemin contient une barre oblique inverse (\), supprimez-la manuellement.
- A l'invite de commande, redémarrez le service ArcSDE à l'aide de la commande sdemon –o start ou net start <nom_service>.
1068 Echec de la dépendance
Il est impossible de trouver le SGBD auquel le service ArcSDE essaie de se connecter. Les causes les plus plausibles de ce problème sont
- Le service SGBD n'a pas été démarré.
- Le serveur SGBD a été supprimé.
- Les informations de connexion du SGBD, qui ont été entrées lors de la création du service ArcSDE, sont inexactes.
Vérifiez que le serveur SGBD existe et que le service est démarré, et assurez-vous que les informations de connexion du SGBD sont correctes. Si l'erreur persiste, utilisez la commande sdeservice pour supprimer le service ArcSDE existant et recréez-le.
1069 Echec de la connexion
En général, cette erreur implique que l'utilisateur Windows qui a démarré le service ArcSDE n'est ni administrateur Windows, ni utilisateur avec pouvoir Windows. Un mot de passe inexact est une autre possibilité.
Si le compte de l'administrateur système n'est pas utilisé pour démarrer le service, assurez-vous que le compte d'utilisateur fait partie du groupe d'administrateurs ou d'utilisateurs avec pouvoir Windows.
1072 Registre occupé
Il est arrivé quelque chose dans le registre en rapport avec l'entrée du service ArcSDE. Peut-être la commande sdeservice avec l'opération –o delete a-t-elle été exécutée ou le service a-t-il été ouvert avec l'éditeur de registre. Il y a également pu avoir un problème avec le fournisseur OLE DB (Object Linking and Embedding Database).
1075 Service de dépendance supprimé
Le service ArcSDE ne parvient pas à localiser le service SGBD auquel il doit se connecter. Assurez-vous que le service SGBD existe et qu'il est démarré. Si le problème n'est pas réglé, utilisez la commande sdeservice pour supprimer et recréer le service ArcSDE.
2140 Erreur Windows interne
Le service ArcSDE n'a pas pu terminer le processus de démarrage. Examinez le fichier journal des erreurs (%SDEHOME%\etc\sde_<instance_sde>.log) pour savoir pourquoi le service ArcSDE ne démarre pas.
Causes possibles et solutions
- Il n'y a aucune entrée pour l'instance dans le fichier services du système. Dans ce dernier, recherchez une entrée de service correspondant à l'instance ArcSDE qui essaie de démarrer.
- Les entrées du fichier services du système et du fichier services d'ArcSDE ne correspondent pas. Vérifiez que l'entrée du fichier services du système est la même que celle du fichier %SDEHOME%\etc\services.
- La dernière ligne du fichier services du système ne peut pas être lue si elle ne se termine pas par un caractère de fin de ligne. Si l'entrée est sur la dernière ligne du fichier services du système, vérifiez que la ligne se termine par un retour-chariot.
- Le composant TCP/IP peut être endommagé. Réinstallez-le. Consultez la documentation Windows ou contactez le site d'assistance technique de Microsoft pour obtenir plus d'informations sur la procédure à suivre.
- Le mot de passe de l'administrateur du service ArcSDE n'a pas été entré correctement. Si tel est le cas, utilisez la commande sdeservice –o modify –r SDE_DBA_PASSWORD pour le corriger.
- Vous essayez de vous connecter à la géodatabase avec un service ArcSDE en utilisant un utilisateur authentifié par Windows, mais ce dernier n'a pas l'autorisation d'accéder au dossier qui contient gsrvr.exe sur le serveur ArcSDE. Un utilisateur qui est administrateur Windows sur le serveur ArcSDE doit accorder les autorisations de lecture et d'exécution sur le dossier %SDEHOME%\<dbms>exe à l'ouverture de la session Windows qui essaie d'établir la connexion.
gsrvr.exe - Echec initialisation DLL ou gsrvr.exe - Erreur application : l'initialisation de l'application a échoué
Sous Windows, le service ArcSDE est démarré sous forme de bureau non interactif. La quantité maximale de mémoire tas attribuée aux bureaux non interactifs est limitée par un paramètre d'initialisation Windows appelé SharedSection. Si ce message d'erreur s'affiche, vous devrez peut-être modifier le paramètre SharedSection.
Le paramètre CONNECTIONS de la table SERVER_CONFIG (sde_server_config dans SQL Server et PostgreSQL) restreint également le nombre de connexions simultanées pouvant être apportées à la géodatabase que vous devrez peut-être augmenter.
- Mémoire tas
La quantité maximale de mémoire tas disponible pour tous les ordinateurs de bureau, à la fois interactive et non interactive, est 48 méga-octets. Le volume de cette mémoire est fini, et vous devez donc régler soigneusement le paramètre SharedSection. Si le service ArcSDE démarre en tant que compte de domaine, gsrvr.exe attribue à partir de l'ordinateur de bureau un segment de mémoire non interactif de 512 Ko, créé pour le service ArcSDE. Si le service ArcSDE démarre en tant que compte LocalSystem, gsrvr.exe attribue à partir de l'ordinateur de bureau partagé un tas non interactif de 512 Ko, pour tous les services qui s'exécutent en tant que LocalSystem. Si le service ArcSDE démarre en tant que compte LocalSystem avec un service permettant d'interagir avec l'ordinateur de bureau activé, gsrvr.exe attribue, depuis l'ordinateur de bureau par défaut, un tas interactif de 3 Mo.
SolutionsLa solution dépend du système d'exploitation. Il n'existe à l'heure actuelle aucune méthode pour déterminer la quantité de mémoire utilisée par un seul ordinateur de bureau ou la mémoire qui reste dans le groupe global. Utilisez oh.exe, un outil du kit de ressources Windows, pour déterminer combien d'ordinateurs sont en cours d'utilisation.
- Modifiez le paramètre SharedSection du registre.
Estimez le nombre de gsrvrs nécessaire. Pour les clients tels que ArcGIS for Desktop Basic, ArcGIS for Desktop Standard et ArcExplorer, un gsrvr correspond généralement à une seule connexion ArcSDE. Pour ArcIMS, le nombre de gsrvrs dépend du type de service. Si l'on part du principe qu'il y a deux threads de serveur virtuels par unité centrale de serveur spatial, suivez cette formule générale :
(2 image service threads * total CPUs) + (number of query server threads)
Par exemple : (2 * 8) + 8 = 24 gsrvrs Cette recommandation part également du principe que vous utilisez un service d'image et de requête, et que tous les AXL se connectent en tant que même utilisateur et même base de données au serveur ArcSDE. Si différents utilisateurs ou bases de données sont référencés dans vos AXL, la formule devient :
(#databases * #mapservice threads)+ (#dbs*#queryservices)
Si le nombre de gsrvrs dépasse 64 (paramètre CONNECTIONS par défaut dans la table SERVER_CONFIG d'ArcSDE), vous pouvez augmenter le troisième paramètre SharedSection dans le Registre.
Ce paramètre est modifié à l'aide de l'éditeur du registre Windows. Pour modifier le paramètre SharedSection, à l'invite MS_DOS, saisissez "regedit" sur la ligne de saisie, puis cliquez sur OK. Naviguez jusqu'au chemin de registre suivant et double-cliquez sur la clé de registre Windows.Attention :Les instructions de cette étape impliquent de modifier des parties essentielles de votre système d'exploitation. Il est recommandé de sauvegarder votre système d'exploitation et vos fichiers, y compris le registre, avant de continuer. Consultez un spécialiste des systèmes informatiques, si nécessaire. Esri ne peut pas garantir les résultats suite à des modifications incorrectes qui pourraient survenir en suivant ces consignes. Par conséquent, soyez prudent et continuez à vos propres risques.
\\HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems
Cette chaîne contient des paramètres de démarrage pour Windows. Le paramètre SharedSection se trouve dans la chaîne. La valeur par défaut est 1024 3072 512. Le troisième argument est la quantité maximale de mémoire tas attribuée aux ordinateurs non interactifs. Par défaut, il est défini sur 512 kilo-octets ou un méga-octet. A cette valeur, un service ArcSDE accepte environ 56 connexions. Si vous augmentez la taille maximale du segment de mémoire pour les ordinateurs non interactifs à 2 Mo, le service ArcSDE accepte jusqu'à 270 connexions. La valeur SharedSection est 1024 3072 2048 lorsque la taille du segment de mémoire non interactif est définie sur deux méga-octets. Augmentez la troisième valeur du paramètre SharedSection de 512 à 1 024. Cette opération double le nombre de gsrvrs que le service ArcSDE peut générer.
SharedSection=1024,3076,1024
Le serveur doit être redémarré une fois que SharedSection a été modifié.
- Sites SQL Server utilisant l'authentification Windows pour leurs connexions à la géodatabase d'entreprise
Les utilisateurs qui se connectent aux services ArcSDE avec l'authentification Windows peuvent rencontrer différents problèmes de connexion. Lorsque le service ArcSDE génère un gsrvr d'une connexion Windows authentifiée, ce gsrvr ne procède pas à l'attribution à partir du même ordinateur que le processus du serveur, giomgr.exe, mais reçoit son propre tas (non interactif) de 512 Ko. Plusieurs connexions authentifiées Windows depuis le même ordinateur procèdent à l'attribution à partir du même ordinateur, mais les connexions d'ordinateurs différents sont traitées par de nouveaux ordinateurs. Lors du fonctionnement exclusivement en mode d'authentification Windows, un nombre plus élevé de connexions ArcSDE peut être traité en réduisant la taille des tas interactifs et non interactifs, au lieu de l'augmenter comme mentionné précédemment.
- Sites qui ont des services Terminal Server ou Citrix déployés sur leur serveur ArcSDE
Les services Terminal Server réduisent le regroupement de la mémoire globale de l'ordinateur de 48 Mo à 20 Mo. Cela signifie que moins d'ordinateurs de bureau sont créés au total. Si vous utilisez cet environnement, le troisième paramètre de SharedSection peut être augmenté, mais soyez prudent avec le nombre de services non-LocalSystem différents créés. N'oubliez pas qu'au démarrage d'un service non-LocalSystem, il attribue la mémoire du regroupement de mémoire globale à un nouvel ordinateur de bureau. Il n'est pas recommandé que les sites SQL Server utilisent des services Terminal Server avec des connexions ArcSDE authentifiées par le système Windows. Si cette configuration doit être utilisée et qu'un nombre insuffisant de connexions ArcSDE peuvent être prises en charge, le problème peut être résolu en permettant au service ArcSDE d'interagir avec l'ordinateur de bureau. Dans ce cas, ne modifiez aucun des paramètres SharedSection.
- Modifiez le paramètre SharedSection du registre.
- Paramètre SERVER_CONFIG CONNECTIONS
Si vous atteignez à plusieurs reprises le nombre maximal de connexions simultanées autorisées par le paramètre d'initialisation CONNECTIONS défini dans la table système SERVER_CONFIG (SDE_SERVER_CONFIG dans les géodatabases SQL Server et PostgreSQL), vous devez augmenter la valeur de ce paramètre. La valeur par défaut est 48. Reportez-vous à la rubrique Le fichier giomgr.defs et la table système SERVER_CONFIG pour en savoir plus.
Vous pouvez modifier le paramètre d'initialisation CONNECTIONS dans la table SERVER_CONFIG à l'aide de la commande d'administration sdeconfig.Remarque :Les connexions directes sont comptées dans le nombre de connexions prises en compte par le paramètre CONNECTIONS. En d'autres termes, le nombre de connexions directes et de connexions du service ArcSDE ne peut pas dépasser la valeur du paramètre CONNECTIONS.
- Pour voir la valeur actuelle du paramètre CONNECTIONS, utilisez la commande sdeconfig –o list à l'invite de commande. La syntaxe pour cette commande est
sdeconfig –o list [–p <SDE_admin_password>]
- Modifiez la valeur du paramètre CONNECTIONS avec la commande sdeconfig –o alter.
sdeconfig –o alter –v <Property_Name=Value,...> [–i <service] [–s <server_name>] [–D <database>] –u <SDE_admin_user> [–p <SDE_admin_password>] [–N] [–q]
- Pour voir la valeur actuelle du paramètre CONNECTIONS, utilisez la commande sdeconfig –o list à l'invite de commande. La syntaxe pour cette commande est