Disponible avec une licence Standard ou Advanced.
En tant qu’administrateur de géodatabase, vous devez parfois identifier qui est connecté à la géodatabase et quelles connexions verrouillent des ressources. Vous pouvez également être amené à supprimer certaines connexions si les utilisateurs concernés sont absents et ne peuvent pas se déconnecter eux-mêmes. Par exemple, si un éditeur a laissé ArcGIS Pro ouvert lors de l’édition, les données sont verrouillées dans la session d’édition. De ce fait, d’autres éditeurs ne peuvent pas y accéder et le propriétaire des données ne peut pas modifier la structure des tables. Vous pouvez également demander à tous les utilisateurs de se déconnecter pour appliquer un correctif à la base de données, restaurer la base de données ou compresser la géodatabase.
Vous pouvez vous connecter à la géodatabase en tant qu’utilisateur sde depuis ArcGIS Pro pour afficher et, si nécessaire, supprimer les connexions. Ou bien, vous pouvez utiliser des fonctions ArcPy pour effectuer ces opérations.
Pour déconnecter des utilisateurs d’une géodatabase dans SAP HANA, l’utilisateur sde doit bénéficier de l’autorisation SESSION ADMIN dans la base de données.
Attention :
Soyez prudent lorsque vous déconnectez les utilisateurs. Esri vous déconseille de déconnecter les sessions actives, surtout si l’utilisateur connecté est en train de procéder à une mise à jour. Vous ne devez déconnecter que des sessions laissées ouvertes mais non utilisées (par exemple, si un utilisateur a laissé sa session ouverte quand il est parti en week-end), les sessions orphelines qui verrouillent un objet ou les sessions bloquées.
En premier lieu, déterminez qui est connecté à la géodatabase. Si nécessaire, vous pouvez ensuite supprimer les connexions.
Identifier et supprimer des connexions dans ArcGIS Pro
Vous pouvez vous connecter à la géodatabase en tant qu’utilisateur sde dans ArcGIS Pro pour afficher les connexions dans la boîte de dialogue Geodatabase Administration (Administration de géodatabase).
- Démarrez ArcGIS Pro.
- Connectez-vous à la géodatabase en tant qu’utilisateur SDE.
- Cliquez avec le bouton droit sur la connexion à la base de données et cliquez sur Administration > Connections (Connexions).
La liste de toutes les sessions actuellement connectées à la géodatabase s’affiche. Votre session apparaît en italique.
- Contactez les utilisateurs pour leur demander de fermer leurs sessions. Si vous ne réussissez pas à les joindre et si vous devez absolument les déconnecter de la géodatabase, procédez comme suit.
- Cliquez avec le bouton droit sur la session que vous souhaitez supprimer de la géodatabase, puis sélectionnez Déconnecter.
La session est immédiatement supprimée de la géodatabase.
- Fermez la boîte de dialogue Administration de la géodatabase.
Identifier et supprimer des connexions à l’aide de Python
Vous pouvez exécuter des fonctions ArcPy afin de créer un fichier de connexion à une base de données pour l’utilisateur sde, utiliser ce fichier de connexion pour vous connecter à la géodatabase et obtenir la liste de toutes les connexions à la géodatabase actuelles, et supprimer une connexion de la géodatabase, si nécessaire.
- Créez un fichier de connexion à une base de données en exécutant la fonction CreateDatabaseConnection_management dans une fenêtre Python. Enregistrez le nom d’utilisateur et le mot de passe dans le fichier.
Dans cet exemple, un fichier de connexion (saphana.sde) est créé dans le répertoire dbconnections de l’utilisateur. Le fichier de connexion crée une connexion à une base de données nommée spsap et l’identifiant de connexion est celui de l’utilisateur sde.
import arcpy arcpy.CreateDatabaseConnection_management ("/usr/dbconnections", "saphana.sde", "SAPHANA", "spsap", "DATABASE_AUTH", "sde", "thesdepwd", "SAVE_USERNAME")
- Exécutez la fonction ListUsers pour obtenir la liste de toutes les connexions actuelles à la géodatabase spsap.
Indiquez le fichier de connexion que vous avez créé à l’étape précédente.
##No need to import arcpy if you are running functions in the same Python window. import arcpy arcpy.ListUsers("/usr/dbconnections/saphana.sde")
Une liste des connexions utilisateur est renvoyée.
[user(ClientName=u'PC4', ConnectionTime=datetime.datetime(2018, 10, 18, 8, 30, 19), ID=18, IsDirecConnection=True, Name=u'PUBLISHER1')] [user(ClientName=u'PC25', ConnectionTime=datetime.datetime(2018, 10, 21, 14, 10, 43), ID=33, IsDirecConnection=True, Name=u'EDITOR2')] [user(ClientName=u'PC11', ConnectionTime=datetime.datetime(2018, 10, 22, 9, 18, 26), ID=39, IsDirecConnection=True, Name=u'READER5')] [user(ClientName=u'PCA2', ConnectionTime=datetime.datetime(2018, 10, 22, 11, 21, 2), ID=41, IsDirecConnection=True, Name=u'SDE')]
- Contactez les utilisateurs pour leur demander de fermer leurs sessions. Si vous ne réussissez pas à les joindre et si vous devez absolument les déconnecter de la géodatabase, procédez comme suit.
- Utilisez les informations obtenues par la fonction ListUsers pour identifier la connexion à supprimer via la fonction DisconnectUser.
Spécifiez l'ID de la connexion à supprimer. Dans ce cas, la connexion associée à l'ID 33 est supprimée :
##No need to import arcpy if you are running functions in the same Python window. import arcpy arcpy.DisconnectUser("/usr/dbconnections/saphana.sde",33)
La session est immédiatement supprimée de la géodatabase.
Vous avez un commentaire à formuler concernant cette rubrique ?