Disponible avec une licence Standard ou Advanced.
En tant qu'administrateur de géodatabase, vous devez parfois déterminer qui est connecté à la géodatabase et quelles connexions bloquent les ressources. Vous pouvez même être amené à supprimer certaines connexions. Par exemple, si une session de mise à jour est restée ouverte, les données sont verrouillées et les autres utilisateurs ne peuvent pas y accéder. Lorsque le nombre de connexions pouvant être établies à une géodatabase est limité, vous devrez éventuellement déconnecter un utilisateur toujours en ligne pour libérer une connexion. Vous pouvez également demander à tous les utilisateurs de se déconnecter pour appliquer un correctif à la base de données, la restaurer ou encore compresser la géodatabase.
Si les utilisateurs ne peuvent pas se déconnecter eux-mêmes (s'ils sont absents, par exemple), vous pouvez vous connecter à la géodatabase en tant qu'utilisateur sde à partir d'ArcGIS for Desktop ou via une fonction ArcPy, puis mettre fin à leurs connexions.
Pour déconnecter des utilisateurs d'une géodatabase dans IBM DB2 sous Linux, UNIX ou Windows, l'utilisateur sde doit bénéficier de l'autorité SYSCTRL ou SYSADM, ainsi que de l'autorité DBADM. Vous ne pouvez pas déconnecter des utilisateurs d'une géodatabase dans DB2 sous z/OS.
En premier lieu, déterminez qui est connecté à la géodatabase et supprimez les connexions, le cas échéant. Vous pouvez vous connecter à la géodatabase dans ArcGIS for Desktop à l'aide de la fonction ArcPy DisconnectUser.
Identifier et supprimer des connexions dans ArcGIS for Desktop
Vous pouvez vous connecter à la géodatabase en tant qu'utilisateur sde dans ArcGIS for Desktop pour afficher les connexions de la boîte de dialogue Administration de géodatabase.
- Démarrez ArcMap ou ArcCatalog.
- Connectez-vous à la géodatabase en tant qu'utilisateur sde.
- Cliquez avec le bouton droit sur la connexion à la base de données dans l'arborescence du Catalogue, pointez sur Administration, puis cliquez sur Administrer la géodatabase.
- Cliquez sur l'onglet Connexions.
La liste de toutes les sessions utilisateur actuellement connectées à la géodatabase est affichée. 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 de l'utilisateur que vous souhaitez supprimer de la géodatabase, puis sélectionnez Déconnecter.
La session de l'utilisateur est immédiatement supprimée de la géodatabase.
Identifier et supprimer des connexions avec ArcPy
Vous pouvez exécuter des fonctions Python pour définir une connexion à une géodatabase, déterminer les utilisateurs actuellement connectés à la géodatabase et supprimer une connexion de cette dernière.
- 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 avec le fichier.
Dans cet exemple, un fichier de connexion (dgdb.sde) est créé dans le dossier temporaire. La connexion à la base de données cataloguée spdb2 est établie par l'utilisateur sde.
import arcpy arcpy.CreateDatabaseConnection_management ("c:\\temp", "dgdb.sde", "DB2", "spdb2", "DATABASE_AUTH", "sde", "mysdepwd", "SAVE_USERNAME")
- Exécutez la fonction ListUsers pour obtenir une liste des connexions actives à la géodatabase spdb2.
Spécifiez 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("c:\\temp\dgdb.sde")
Une liste des connexions utilisateur est renvoyée.
[user(ClientName=u'PC4', ConnectionTime=datetime.datetime(2014, 2, 18, 8, 30, 19), ID=18, IsDirecConnection=True, Name=u'publisher1')] [user(ClientName=u'PC25', ConnectionTime=datetime.datetime(2014, 2, 21, 14, 10, 43), ID=33, IsDirecConnection=True, Name=u'editor2')] [user(ClientName=u'PC11', ConnectionTime=datetime.datetime(2014, 2, 22, 9, 18, 26), ID=39, IsDirecConnection=True, Name=u'reader5')] [user(ClientName=u'PCA2', ConnectionTime=datetime.datetime(2014, 2, 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("c:\\temp\dgdb.sde",33)
La session de l'utilisateur est immédiatement supprimée de la géodatabase.