Verwalten von Verbindungen mit einer Geodatabase in SAP HANA

Als Geodatabase-Administrator müssen Sie gelegentlich überprüfen, wer mit der Geodatabase verbunden ist und welche Verbindungen Ressourcen sperren. Möglicherweise müssen Sie sogar bestimmte Verbindungen entfernen, wenn die Benutzer nicht anwesend sind, um sich selbst abzumelden. Ein Editor hat möglicherweise eine Bearbeitungssitzung geöffnet gelassen, wodurch die Daten in der Bearbeitungssitzung gesperrt und andere Editoren nicht darauf zugreifen können. Wenn die Anzahl der Verbindungen, die mit einer Geodatabase hergestellt werden können, beschränkt ist, müssen Sie einen Benutzer, der sich nicht abgemeldet hat, möglicherweise trennen, um eine Verbindung freizugeben. Sie können jedoch auch alle Benutzer abmelden, um ein Patch auf die Datenbank anzuwenden, die Datenbank wiederherzustellen oder die Geodatabase zu komprimieren.

Sie können in ArcGIS Pro als SDE-Benutzer eine Verbindung mit der Geodatabase herstellen, um Verbindungen anzuzeigen und bei Bedarf zu entfernen. Alternativ können Sie diesen Workflow mit ArcPy-Funktionen durchführen.

Vorsicht:

Gehen Sie beim Trennen von Benutzern mit Bedacht vor. Esri empfiehlt, aktive Sitzungen nicht zu trennen, besonders, wenn der verbundene Benutzer gerade etwas bearbeitet. Sie sollten die Verbindung von Sitzungen nur dann trennen, wenn eine Sitzung geöffnet gelassen wurde, aber nicht verwendet wird (wenn ein Benutzer die Sitzung beispielsweise am Wochenende geöffnet gelassen hat), wenn eine Sitzung verwaist ist und ein Objekt sperrt oder wenn eine Deadlock-Situation auftritt.

Um die Verbindung von Benutzern mit einer Geodatabase in SAP HANA zu trennen, muss der SDE-Benutzer über die SESSION ADMIN-Berechtigung in der Datenbank verfügen.

Stellen Sie zunächst fest, wer mit der Geodatabase verbunden ist. Sie können dann ggf. die entsprechenden Verbindungen trennen.

Identifizieren und Entfernen von Verbindungen über ArcGIS Pro

Sie können eine Verbindung mit der Geodatabase als SDE-Benutzer in ArcGIS Pro herstellen, um Verbindungen im Dialogfeld Geodatabase-Verwaltung anzuzeigen.

  1. Starten Sie ArcGIS Pro.
  2. Stellen Sie eine Verbindung mit der Geodatabase als SDE-Benutzer her.
  3. Klicken Sie mit der rechten Maustaste auf die Datenbankverbindung, und klicken Sie dann auf Eigenschaften.
  4. Klicken Sie auf Verbindungen und auf Verbundene Benutzer anzeigen.

    Es wird eine Liste mit allen Sitzungen angezeigt, die aktuell mit der Geodatabase verbunden sind. Ihre Sitzung wird in kursivem Text angezeigt.

  5. Wenden Sie sich an einzelne Benutzer, um sie zu bitten, ihre Sitzungen zu schließen. Falls Sie sie nicht erreichen können und sie dennoch von der Geodatabase trennen müssen, fahren Sie mit dem nächsten Schritt fort.
  6. Klicken Sie mit der rechten Maustaste auf die entsprechende Sitzung, die Sie aus der Geodatabase entfernen möchten, und klicken Sie auf Trennen.

    Die Sitzung wird sofort aus der Geodatabase gelöscht.

  7. Schließen Sie das Dialogfeld Geodatabase-Verwaltung.
  8. Klicken Sie im Dialogfeld Datenbankeigenschaften auf OK.

Identifizieren und Entfernen von Verbindungen mit Python

Sie können Python-Funktionen ausführen, um eine Geodatabase-Verbindungsdatei für den Geodatabase-Administrator zu erstellen, mit dieser Verbindungsdatei eine Verbindung mit der Geodatabase herzustellen, eine Liste aller aktuellen Geodatabase-Verbindungen abzurufen und ggf. eine Verbindung aus der Geodatabase zu entfernen.

  1. Erstellen Sie eine Datenbankverbindungsdatei, indem Sie die Funktion CreateDatabaseConnection_management in einem Python-Fenster ausführen. Speichern Sie den Benutzernamen und das Kennwort mit der Datei.

    In diesem Beispiel wird eine Verbindungsdatei (saphana.sde) im Verzeichnis "dbconnections" des Benutzers erstellt. Mit der Verbindungsdatei wird eine Verbindung mit einer Datenbank mit dem Namen "spsap" und mit Anmeldung als SDE-Benutzer hergestellt.

    import arcpy
    arcpy.CreateDatabaseConnection_management ("/usr/dbconnections", "saphana.sde", "SAPHANA", "spsap", "DATABASE_AUTH", "sde", "thesdepwd", "SAVE_USERNAME")
  2. Führen Sie die Funktion ListUsers aus, um eine Liste der aktuellen Verbindungen mit der Geodatabase "spsap" abzurufen.

    Geben Sie die Verbindungsdatei an, die Sie im vorherigen Schritt erstellt haben.

    ##No need to import arcpy if you are running functions in the same Python window. import arcpy
    arcpy.ListUsers("/usr/dbconnections/saphana.sde")

    Es wird eine Liste der Benutzerverbindungen zurückgegeben.

    [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')]

  3. Wenden Sie sich an einzelne Benutzer, um sie zu bitten, ihre Sitzungen zu schließen. Falls Sie sie nicht erreichen können und sie dennoch von der Geodatabase trennen müssen, fahren Sie mit dem nächsten Schritt fort.
  4. Bestimmen Sie mit den über die Funktion ListUsers abgerufenen Informationen, welche Verbindung mit der Funktion DisconnectUser entfernt werden soll.

    Geben Sie die ID der zu entfernenden Verbindung an. Hier wird die Verbindung mit der ID 33 entfernt:

    ##No need to import arcpy if you are running functions in the same Python window.
    import arcpy
    arcpy.DisconnectUser("/usr/dbconnections/saphana.sde",33)

    Die Sitzung wird sofort aus der Geodatabase gelöscht.