Entfernen von direkten Verbindungen aus der Geodatabase
Manchmal kann eine Verbindung hängen, sodass ein Datensatz in einer oder mehreren Geodatabase-Repository-Tabellen verwaist ist. Wenn das passiert, müssen Sie die Verbindung möglicherweise zwangsweise beenden. Verwenden Sie dazu den administrativen Befehl "sdemon".
Wenn Sie den Befehl "sdemon" mit dem Vorgang "kill" verwenden, wird die Verbindung zur Geodatabase entfernt und alle Datensätze in PROCESS_INFORMATION und in Sperrtabellen bereinigt.
Dies wird derzeit nicht für ArcSDE-Geodatabases in PostgreSQL unterstützt.
Der Befehl "sdemon" mit dem Vorgang "kill" hat folgende Syntax:
sdemon –o kill –t {all | <pid>} [–D <database_name>] [-s <datasource>] -i <direct_connect_string> –u <user_name> –p <password>
Die Option "–t" gibt an, ob alle Verbindungen aus der Geodatabase (all) oder nur eine bestimmte Verbindung (<pid>) entfernt werden sollen. In den meisten Fällen geben Sie die Prozess-ID (pid) für eine bestimmte Verbindung ein, die im Geodatabase-Repository beibehalten wurde.
Die Option "-i" wird verwendet, um die Direktverbindung herzustellen. Weitere Informationen zur Syntax finden Sie unter Direkte Verbindungen von ArcSDE-Befehlen zu einer Oracle-Geodatabase.
Wenn Sie eine Verbindung mit einer Nicht-Oracle-Datenbank herstellen, geben Sie den Namen der Datenbank mit der Option "-D" an. (Bei einer Verbindung zu Oracle benötigen Sie die Option "-D" nicht.)
Wenn Sie eine direkte Verbindung zu einer Oracle-Datenbank herstellen möchten, müssen Sie das At-Zeichen (@) gefolgt von dem Oracle-Netzwerkdienstnamen an das Kennwort anhängen. Beispiel: Wenn das Kennwort der Datenbank "hokeysmokes" und der Oracle-Dienstname "myoracle" lautet, geben Sie "hokeysmokes@myoracle" ein.
Wenn Sie eine Verbindung mit einem Remote-Server herstellen möchten, geben Sie die Option "–s" mit dem Namen des Servers an, auf dem sich die Datenbank befindet.
Mit der Option "–u" und der Option "–p" können Sie einen Benutzernamen und ein Kennwort für einen Datenbankbenutzer angeben, der über ausreichende Berechtigungen zum Beenden einer direkten Datenbankverbindung verfügt. Eine Liste der erforderlichen Berechtigungen finden Sie unter Benutzerberechtigungen für Geodatabases in Oracle.
Das Unterbrechen aktiver Verbindungen (die nicht verwaist sind) wird nicht empfohlen. Dies gilt besonders, wenn der verbundene Benutzer gerade Daten bearbeitet. Falls der Benutzer nicht gespeichert hat, gehen beim Beenden der Verbindung alle ungespeicherten Bearbeitungen verloren, und die Daten werden möglicherweise beschädigt.
- Öffnen Sie eine MS-DOS-Eingabeaufforderung (Windows) oder eine Shell-Eingabeaufforderung (UNIX oder Linux).
- Sammeln Sie Informationen über verbundene Benutzer, indem Sie entweder die Funktion "SE_connection_get_instance_users" verwenden, die Tabelle PROCESS_INFORMATION abfragen oder den Befehl "sdemon" mit dem Vorgang "info" oder der Option "users_long" verwenden. Eine Anleitung zur Verwendung des Befehls "sdemon" zum Abrufen einer Liste von Verbindungen finden Sie unter Anzeigen von verbundenen Sitzungen.
- Identifizieren Sie in den zurückgegeben Informationen die SDE-ID der Verbindung, die Sie entfernen möchten. Bei der Option "users" für "sdemon –o info" ist dies "S–ID". Bei der Option "users_long" ist dies die Server-Task-ID. Für die Funktion "SE_connection_get_instance_users" ist dies "svr_id". Wenn Sie die Tabelle PROCESS_INFORMATION abfragen, verwenden Sie "sde_id".
- Geben Sie den Befehl "sdemon" mit dem Vorgang "kill" und der entsprechenden, weiter oben in diesem Thema beschriebenen Option ein. Verwenden Sie die Option "–t", um den Wert von SDE ID für die zu entfernende Verbindung anzugeben.
Weitere Informationen zum Befehl "sdemon" finden Sie in der ArcSDE Administration Command Reference, die zusammen mit der ArcSDE-Komponente von ArcGIS Server Enterprise bereitgestellt wird.