Suppression de connexions directes de la géodatabase
Parfois, une connexion peut être interrompue et un enregistrement devient alors orphelin dans une ou plusieurs tables de référentiel de la géodatabase. Lorsque cela se produit, vous devez forcer l'arrêt de la connexion. Pour ce faire, utilisez la commande d'administration sdemon.
L'exécution de la commande sdemon avec l'opération kill supprime la connexion à la géodatabase et nettoie tous les enregistrements dans la table PROCESS_INFORMATION et les tables de verrous.
Actuellement, elle n'est pas prise en charge pour les géodatabases ArcSDE dans PostgreSQL.
La syntaxe de la commande sdemon avec l'opération kill est la suivante :
sdemon –o kill –t {all | <pid>} [–D <database_name>] [-s <datasource>] -i <direct_connect_string> –u <user_name> –p <password>
L'option –t spécifie si toutes les connexions doivent être supprimées de la géodatabase (all) ou uniquement une connexion spécifique (<pid>). Dans la plupart des cas, tapez l'identifiant de processus (pid) d'une connexion spécifique qui a été laissée dans le référentiel de la géodatabase.
L'option -i permet d'établir la connexion directe. Pour connaître la syntaxe correcte, voir Connexions directes à partir de commandes ArcSDE à une géodatabase dans Oracle.
Si vous vous connectez à une base de données autre qu'Oracle, tapez le nom de la base de données avec l'option –D. (Si vous vous connectez à Oracle, ne spécifiez pas l'option –D.)
Pour les connexions directes à une base de données Oracle, ajoutez le symbole arobase (@) et le nom du service réseau Oracle à la suite du mot de passe. Par exemple, si le mot de passe d'accès à la base de données est hokeysmokes et que le nom du service Oracle est myoracle, tapez hokeysmokes@myoracle.
Si vous vous connectez à une base de données sur un serveur distant, spécifiez l'option –s avec le nom du serveur sur lequel réside la base de données.
Utilisez les options –u et –p pour spécifier le nom d'utilisateur et le mot de passe d'un utilisateur de base de données disposant des autorisations suffisantes pour interrompre une connexion directe à la base de données. Pour connaître ces autorisations, voir Autorisations utilisateur pour les géodatabases dans Oracle.
Il n'est pas conseillé de supprimer des connexions actives (et non orphelines), en particulier si l'utilisateur connecté est en train de modifier des données. Si l'utilisateur n'a pas enregistré les données, toutes les mises à jour non enregistrées sont perdues lorsque la connexion est supprimée et il y a un risque d'altération des données.
- Ouvrez une fenêtre d'invite de commande MS-DOS (Windows) ou shell (UNIX ou Linux).
- Obtenez les informations relatives aux utilisateurs connectés à l'aide de la fonction SE_connection_get_instance_users, en interrogeant la table PROCESS_INFORMATION ou en exécutant la commande sdemon avec l'opération info et l'option user ou users_long. Pour consulter les instructions d'utilisation de la commande sdemon afin d'obtenir une liste de connexions, voir Affichage des sessions connectées.
- Dans les informations renvoyées, identifiez l'identifiant SDE de la connexion que vous souhaitez supprimer. Pour l'option users de la commande sdemon avec l'opération info –o, il s'agit de S–ID. Pour l'option users_long, il s'agit de l'identifiant de la tâche serveur. Pour la fonction SE_connection_get_instance_users, il s'agit de svr_id. Si vous interrogez la table PROCESS_INFORMATION, il s'agit de sde_id.
- Tapez la commande sdemon avec l'opération kill et les options appropriées décrites ci-avant dans cette rubrique. Utilisez l'option –t afin de spécifier la valeur de l'identifiant SDE de la connexion à supprimer.
Pour plus d'informations sur la commande sdemon, consultez le manuel ArcSDE Administration Command Reference fourni avec le composant ArcSDE d'ArcGIS Server dans sa version Enterprise.