Problembehandlung beim ArcSDE-Dienst
Bei den meisten Problemen, die beim Starten eines ArcSDE-Diensts auftreten können, liegen die Ursachen in Problemen mit der Systemumgebung. Oftmals wurde ein entscheidender Schritt bei der Installation oder Konfiguration der Software nicht abgeschlossen.
In den Tipps zu der Problembehandlung in diesem Thema werden mehrere administrative Befehle genannt. Weitere Informationen zur Verwendung der Befehle finden Sie in der Administration Command Reference.
Die Exit-Codes von "giomgr" sind in der ArcSDE-Entwicklerhilfe dokumentiert. Die ArcSDE-Entwicklerhilfe ist auf der ArcSDE-Komponenteninstallations-DVD sowie auf der Website des Geodatabase Resource Center verfügbar.
Identifizieren von Problemen
-
Windows-Ereignisanzeige
Bei Installationen unter Windows können Sie mit der Windows-Ereignisanzeige nach Problemen suchen. Die Windows-Ereignisanzeige stellt Diagnosedaten zur Verfügung, mit denen sich möglicherweise auch Startprobleme von ArcSDE erklären lassen. Gehen Sie zur Verwendung der Ereignisanzeige wie folgt vor:
- Öffnen Sie die Systemsteuerung.
- Doppelklicken Sie in der Systemsteuerung auf "Verwaltung".
- Wählen Sie unter "Verwaltung" die Option "Komponentendienste".
- Erweitern Sie im Fenster "Komponentendienste" den Ordner "Ereignisanzeige", und selektieren Sie den Eintrag "Anwendung".
- Suchen Sie in der Spalte "Typ" nach einem roten Stoppschild-Symbol und in der Spalte "Quelle" den zugehörigen Namen des ArcSDE-Diensts. Doppelklicken Sie auf den Eintrag des ArcSDE-Diensts, um das Detailfenster zu öffnen.
- Im Detailfenster wird das Problem beschrieben.
-
Fehlerprotokolldateien
Die Aktivitäten von ArcSDE und allen unterstützten Datenbankmanagementsystemen (DBMS) werden in Form von Ereignismeldungen in ASCII-Protokolldateien gespeichert. Sie können diese Protokolldateien nach aufgetretenen Fehlern durchsuchen. ArcSDE erstellt zwei Protokolldateien: "giomgr_<dienst>.log" und "sde_<dienst>.log". (Wenn Sie eine direkte Verbindung verwenden, gibt die Anwendung Fehlermeldungen in die Datei "sdedc_<dbms>.log" statt in die Datei "sde_<dienst>.log" des Anwendungsservers aus.)
- Datei "giomgr_<dienst>.log"
Die Datei "giomgr_<dienst>.log" ist eine ASCII-Datei mit Einträgen für alle Aktivitäten des giomgr-Prozesses. (<dienst> ist der Name des ArcSDE-Diensts.) Jedes Mal, wenn sich ein Benutzer mit dem ArcSDE-Dienst verbindet oder dies zumindest versucht, wird eine Meldung protokolliert. Wenn der Benutzer die Verbindung trennt, wird eine weitere Meldung protokolliert. Außerdem werden in der Datei "giomgr_<dienst>.log" die Prozeduren beim Starten und Beenden des ArcSDE-Diensts erfasst. Diese Datei enthält jedoch keine spezifischen Fehlermeldungen, sie zeigt lediglich die Aktivität des giomgr-Prozesses an.
- Datei "sde_<dienst>.log"
Wenn bei einem gsrvr-Prozess ein Problem auftritt, zeichnet der ArcSDE-Dienst einen Eintrag in der Datei "sde_<dienst>.log" auf. In manchen Fällen handelt es sich lediglich um Warnungen, in anderen Fällen verweisen die Einträge auf Fehler im ArcSDE-Dienst, die Sie beheben müssen. Beachten Sie beim Prüfen der Datei "sde_<dienst>.log", dass die Einträge in diese Datei geschrieben werden, wenn im ArcSDE-Dienstprozess Fehler auftreten. Gelegentlich meldet eine ArcSDE-Anwendung ein Problem im Zusammenhang mit ArcSDE, aber das Ereignis wird nicht in "sde_<dienst>.log" verzeichnet. Dies liegt daran, dass der Fehler auf der ArcSDE-Client-Seite und nicht auf der Serverseite aufgetreten ist. Ab 9.3 speichert die sde_<dienst>.log-Datei auch Informationen, wenn eine fehlerhafte Verbindungsanforderung gesendet wird. Dies kann ein Hinweis darauf sein, dass ein Unbefugter versucht, sich Zugang zum Server zu verschaffen. Ein solcher Eintrag kann wie folgt aussehen:
[Mon Mar 05 09:35:14 2007] [0] [GIOMGR] Invalid connection request length of -2147477504 from [10.47.6.5:32923] [Mon Mar 05 09:35:14 2007] [0] [GIOMGR] Could Not Get XDR Request.
Beachten Sie, dass im Protokolleintrag die IP-Adresse für die Verbindungsanforderung aufgeführt ist. Die Meldung "Could Not Get XDR Request" wurde zurückgegeben, da "giomgr" nicht in der Lage war, die Verbindungsanforderung aufgrund der ungültigen Länge anzunehmen oder zu verstehen. sde_<dienst>.log wird jedes Mal abgeschnitten, wenn der ArcSDE-Dienst beendet und neu gestartet wird.
- DBMS-Fehlerprotokolldateien
Für jedes DBMS werden andere Methoden zur Fehlerprotokollierung verwendet. Informationen darüber, wie Fehler in Ihrem DBMS protokolliert werden, finden Sie im Administrationshandbuch Ihres DBMS.
- Datei "giomgr_<dienst>.log"
Problembehandlung beim ArcSDE-Dienst auf UNIX-Servern
Probleme mit Systempfadvariablen
Wenn die Systempfadvariablen nicht korrekt oder gar nicht eingestellt sind, können folgende Fehler auftreten. Informationen zum Einstellen der Pfadvariablen für Ihr ArcSDE-Produkt finden Sie im ArcSDE Installation Guide.
- Wenn in der Umgebungsvariable PATH das Verzeichnis "$SDEHOME/bin" nicht enthalten ist, wird folgender Fehler ausgegeben:
sdemon: Command not found
- Wenn in der Umgebungsvariable für den Bibliothekenpfad das Verzeichnis "$SDEHOME/lib" nicht enthalten ist, wird folgender Fehler ausgegeben:
ld.so.1: sdemon: fatal: libsde90.so: open failed: No such file or directory Killed
- Wenn in der Umgebungsvariable für den Bibliothekenpfad das erforderliche Verzeichnis für die DBMS-Bibliotheken nicht enthalten ist, wird eine Fehlermeldung ähnlich der folgenden ausgegeben:
ld.so.1: /ultra1/ora10gexe/bin/giomgr: fatal: libclntsh.so\: open failed: No such file or directory Killed Could not start ArcSDE - Check Network, $SDEHOME disk, DBMS settings and dbinit.sde.
ArcSDE-Dienst bereits gestartet
Wenn die ArcSDE-Dienstlizenz nicht installiert wurde, kann der Anwendungsserver nicht gestartet werden. Sie müssen die Lizenz mit dem administrativen Befehl "keymanager" installieren. Eine gültige Lizenz erhalten Sie beim Customer Support von Esri.
Wenn der I/O-Manager bereits ausgeführt wird, wird folgende Meldung angezeigt:
SDE Already Running ArcSDE server license has not been installed
Berechtigungsprobleme mit temporären Dateien
Falls temporäre ArcSDE-Dateien vorhanden sind, deren Besitzer nicht der ArcSDE-Administrator ist, wird folgende Fehlermeldung zurückgegeben:
ERROR: Cannot Initialize Shared Memory (-79) Delete /tmp/<service name> and /tmp<service name>.lock if present. Could not start ArcSDE - Check Network, $SDEHOME disk, DBMS settings and dbinit.sde.
Beheben Sie das Problem, indem Sie die temporären Dateien "/tmp/<dienstname>" und "/tmp/<dienstname>.lock" löschen. Wenn der Dienstname beispielsweise "ESRI_sde" ist, löschen Sie die Dateien "/tmp/ESRI_sde" und "/tmp/ESRI_sde.lock". Möglicherweise müssen Sie sich als Stammverzeichnisbenutzer anmelden, um diese Dateien löschen zu können.
Dateien wurden aus dem Ordner "/tmp" gelöscht
Wenn die Dateien im Verzeichnis "/tmp" gelöscht werden, nachdem der ArcSDE-Dienst gestartet wurde, wird der ArcSDE-Dienst abgebrochen, wenn ein Benutzer eine Verbindung herstellt oder trennt. Der Dienst benötigt UNIX-Socket-Protokolldateien, die im Verzeichnis "/tmp" erstellt werden. Löschen Sie daher grundsätzlich keine Dateien aus dem Verzeichnis "/tmp". Wenn dies aber unbedingt erforderlich sein sollte, beenden Sie den ArcSDE-Dienst, bevor Sie die Dateien löschen. Anweisungen dazu finden Sie unter Beenden eines lokalen ArcSDE-Diensts unter Linux oder UNIX, Beenden eines lokalen ArcSDE-Diensts unter Windows oder Beenden eines Remote-ArcSDE-Diensts.
Probleme im Zusammenhang mit dem DBMS
- Wenn das DBMS nicht gestartet ist, erhalten Sie eine Fehlermeldung ähnlich der folgenden:
init_DB DB_instance_open_as_dba: -51 DBMS error code: 1034 ORA-01034: ORACLE not available Could not start ArcSDE - Check Network, $SDEHOME disk, DBMS settings, and dbinit.sde.
Stellen Sie sicher, dass die Datenbankinstanz gestartet ist, und versuchen Sie es erneut.
- Wenn das ArcSDE-Administratorkennwort nicht korrekt ist, erhalten Sie eine Fehlermeldung ähnlich der folgenden:
init_DB DB_instance_open_as_dba: -93 DBMS error code: 1017 ORA-01017: invalid username/password; login denied Could not start ArcSDE – Check Network, $SDEHOME disk, DBMS settings, and dbinit.sde.
Führen Sie den Befehl mit dem korrekten ArcSDE-Administratorkennwort erneut aus. Sollten Sie das Kennwort vergessen haben, wenden Sie sich an den Datenbankadministrator, der das Kennwort zurücksetzen kann.
- Wenn der ArcSDE-Administrator nicht angelegt wurde, erhalten Sie eine Fehlermeldung ähnlich der folgenden:
init_DB DB_instance_open_as_dba: -93 DBMS error code: 1017 ORA-01017: invalid username/password; login denied Could not start ArcSDE – Check Network, $SDEHOME disk, DBMS settings, and dbinit.sde.
Für ArcSDE ist es bei den meisten DBMS erforderlich, dass ein ArcSDE-Administrator in der Datenbank vorhanden ist. Falls dies nicht der Fall ist, müssen Sie oder der Datenbankadministrator ihn erstellen.
Fehler SE_OUT_OF_MUTEXES (-109) auf einem Solaris-Server
Im Solaris-Betriebssystem werden Dateien verwendet, um die gemeinsam genutzten POSIX Semaphore zu implementieren, die ArcSDE benötigt. Wenn diese Dateien nach einem Ausfall des Betriebssystems oder einem Stromausfall zurückbleiben, kann dies in einigen Fällen zu Problemen führen. Der Speicherort dieser Dateien wird durch das Solaris-Betriebssystem gesteuert. Sie finden die Dateien unter einem der folgenden Verzeichnisse "/tmp" oder "/var/tmp":
/tmp/.SEMD/ SDE_9.0_<instance>_iomgr_shared_semaphore /tmp/.SEML/ SDE_9.0_<instance>_iomgr_shared_semaphore
oder
/var/tmp/.SEMD/ SDE_9.0_<instance>_iomgr_shared_semaphore /var/tmp/.SEML/ SDE_9.0_<instance>_iomgr_shared_semaphore
Wenn Sie nach einem Betriebssystemfehler den ArcSDE-Dienst nicht mehr starten können und einen Fehler "-109" erhalten, liegt dies vermutlich an den beiden gemeinsam genutzten Semaphor-Dateien. Wenn eine oder beide dieser Dateien im Verzeichnis "/tmp" oder "/var/tmp" vorhanden sind, löschen Sie die Dateien, und starten Sie den ArcSDE-Dienst erneut.
Problembehandlung beim ArcSDE-Dienst auf Windows-Servern
Im Folgenden sind Fehler beschrieben, die beim Starten eines ArcSDE-Diensts unter Windows auftreten können. Diese Liste enthält die Fehlernummern (falls vorhanden) und die wahrscheinlichen Ursachen.
997 Error starting esri_sde service
Dieser Fehler kann auftreten, wenn ArcSDE nicht korrekt bzw. nicht vollständig installiert oder konfiguriert ist.
"ESRI_sde service failed during initialization. Please check event log or error log files. Error starting ESRI_sde service(997) Could not start ArcSDE — Check Network, $SDEHOME disk, DBMS settings"
Lösung
- Stellen Sie sicher, dass das korrekte Kennwort für den ArcSDE-Administrator eingegeben wird. Wenn das Kennwort nicht korrekt ist, wird ein Fehler "-93" im Protokoll "sde.errlog" eingetragen.
- Entfernen Sie den vorhandenen ArcSDE-Dienst vollständig, und erstellen Sie einen neuen Dienst.
- Löschen Sie den Dienst mit dem Befehl "sdeservice –o delete".
- Prüfen Sie die Registrierung auf verwaiste Dienstschlüssel. Öffnen Sie folgende Verzeichnisse, und löschen Sie ggf. den Ordner/Schlüssel "[esri_sde]":
HKEY_LOCAL_MACHINE > SOFTWARE > ESRI > ArcInfo > ArcSDE > ArcSDE for [DBMS] > [Dienstname]
HKEY_LOCAL_MACHINE > SYSTEM > ControlSet001 > Services > [Dienstname]
HKEY_LOCAL_MACHINE > SYSTEM > ControlSet002 > Services > [Dienstname]
HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > [Dienstname]
- Starten Sie den Server neu, um die Änderungen an der Registrierung in Kraft zu setzen.
- Geben Sie in der Eingabeaufforderung den Befehl set ein, und stellen Sie sicher, dass %SDEHOME%\bin der erste Eintrag in der Umgebungsvariable PATH ist (PATH=%SDEHOME%\bin;...).
- Überprüfen Sie, ob der Name und die Portnummer des ArcSDE-Dienstes in der Datei %SDEHOME%\etc\services.sde mit dem Eintrag in der Datei unter C:\WINNT bzw. WINDOWS\system32\drivers\etc\services übereinstimmen.
- Navigieren Sie zum Verzeichnis "%SDEHOME%\bin", und erstellen Sie den SDE-Dienst mit dem Befehl "sdeservice –o create" neu.
- Führen Sie "sdeservice –o list" aus, und stellen Sie sicher, dass der Dienstname, der SDEHOME-Pfad und der Lizenzserver korrekt sind.
Wenn der SDEHOME-Pfad zwei umgekehrte Schrägstriche ("\\") oder einen umgekehrten Schrägstrich ("\") am Ende des Pfades enthält, entfernen Sie diese Zeichen manuell.
- Starten Sie den ArcSDE-Dienst über die Eingabeaufforderung mit dem Befehl "sdemon –o start" oder "net start <Dienstname>" neu.
1068 Dependency failure
Das DBMS, zu dem der ArcSDE-Dienst eine Verbindung herstellen soll, wurde nicht gefunden. Dies hat höchstwahrscheinlich eine der folgenden Ursachen:
- Der DBMS-Dienst wurde nicht gestartet.
- Der DBMS-Server wurde entfernt.
- Die DBMS-Verbindungsdaten, die beim Erstellen des ArcSDE-Diensts eingegeben wurden, sind nicht korrekt.
Stellen Sie sicher, dass der DBMS-Server vorhanden ist und der Dienst gestartet wurde, und überprüfen Sie die DBMS-Verbindungsdaten. Wenn der Fehler weiterhin bestehen bleibt, löschen Sie den vorhandenen ArcSDE-Dienst mit dem Befehl "sdeservice", und erstellen Sie ihn erneut.
1069 Login failure
Im Allgemeinen deutet dieser Fehler darauf hin, dass der Windows-Benutzer, der den ArcSDE-Dienst gestartet hat, weder Windows-Administrator noch Windows-Power User ist. Eine weitere Möglichkeit ist ein unkorrektes Kennwort.
Wenn der Dienst nicht mit dem Administratorkonto gestartet wird, stellen Sie sicher, dass das Benutzerkonto zur Gruppe der Administratoren oder der Power User gehört.
1072 Registry was busy
Ein Registrierungsvorgang im Zusammenhang mit dem Eintrag des ArcSDE-Diensts wird gerade ausgeführt. Möglicherweise wurde "sdeservice" mit der Operation "delete" ausgeführt, oder der Dienst wurde im Registrierungseditor geöffnet. Alternativ ist möglicherweise ein Problem mit dem OLE DB-Provider aufgetreten. Informationen zur korrekten Version des OLE DB-Servers für Ihre Installation finden Sie im Installation Guide.
1075 Service dependency deleted
Der ArcSDE-Dienst hat den DBMS-Dienst nicht gefunden, zu dem eine Verbindung hergestellt werden soll. Stellen Sie sicher, dass der DBMS-Dienst vorhanden ist und gestartet wurde. Wenn das Problem bestehen bleibt, löschen Sie den ArcSDE-Dienst mit dem Befehl "sdeservice", und erstellen Sie ihn erneut.
2140 Internal Windows error
Der ArcSDE-Dienst konnte den Startprozess nicht abschließen. Prüfen Sie das sde-Fehlerprotokoll "%SDEHOME%\etc\sde_<sde-instanz>.log" nach möglichen Hinweisen, warum der ArcSDE-Dienst nicht startet.
Mögliche Ursachen und Lösungen
- In der Systemdienstedatei ist kein Eintrag für die Instanz vorhanden. Überprüfen Sie, ob in der Systemdienstedatei ein Diensteintrag vorhanden ist, der der zu startenden ArcSDE-Instanz entspricht.
- Die Einträge in der Systemdienstedatei und der ArcSDE-Dienstedatei stimmen nicht überein. Stellen Sie sicher, dass der Eintrag in der Systemdienstedatei dem Eintrag in der Datei %SDEHOME%\etc\services entspricht.
- Die letzte Zeile der Systemdienstedatei wird möglicherweise nicht gelesen, wenn sie nicht mit einem Zeilenendezeichen abgeschlossen wird. Wenn sich der benötigte Eintrag in der letzten Zeile der Systemdienstedatei befindet, überprüfen Sie, ob die Zeile mit einem Absatzzeichen endet.
- Die TCP/IP-Komponente ist möglicherweise fehlerhaft. Installieren Sie die TCP/IP-Komponente neu. Detaillierte Informationen zur Vorgehensweise finden Sie in der Windows-Dokumentation oder auf der Microsoft-Support-Website.
- Das ArcSDE-Administratorkennwort wurde nicht korrekt eingegeben. Korrigieren Sie es in diesem Fall mit dem Befehl "sdeservice –o modify –r SDE_DBA_PASSWORD".
- Sie versuchen, eine Verbindung zur Geodatabase mit einem ArcSDE-Dienst über einen Windows-authentifizierten Benutzer herzustellen. Der Windows-authentifizierte Benutzer hat jedoch nicht die Berechtigung, auf den Ordner zuzugreifen, der die Datei "gsrvr.exe" auf dem ArcSDE-Server enthält. Ein Benutzer, der zugleich Windows-Administrator auf dem ArcSDE-Server ist, muss die Windows-Anmeldung, mit der eine Verbindung hergestellt werden soll, für den Ordner "%SDEHOME%\<dbms>exe" die Berechtigungen READ und EXECUTE zuweisen.
Beim Ausführen der ArcSDE-Postinstallation ist ein Fehler aufgetreten. Der Vorgang ist fehlgeschlagen; iomgr konnte nicht gestartet werden. DBMS-Fehlercode: 2714
Dieser Fehler kann bei einer SQL Server-Datenbank auftreten, wenn Sie versuchen, den Dienst mit dem Post Installation Wizard zu starten, nachdem der Dienst erstellt wurde und bereits ein Versuch unternommen wurde, den Dienst zu starten.
Wahrscheinlich ist die Ursache hierfür, dass der Name der Geodatabase geändert wurde. Dies kann zum Beispiel vorkommen, wenn Sie ein Backup einer aktuellen Datenbank ausführen und sie zu Testzwecken auf derselben Instanz von SQL Server unter einem anderen Namen wiederherstellen.
Nachdem eine ArcSDE-Geodatabase erstellt wurde, kann sie nicht mehr umbenannt werden. Der Name der ursprünglichen Datenbank ist in Datenbankobjekten hart kodiert. Wenn der Name einer Datenbank mit einer gespeicherten Prozedur geändert wird oder eine Datenbank unter einem anderen als dem ursprünglichen Namen wiederhergestellt wird, kann der ArcSDE-Dienst für diese Datenbank nicht gestartet werden.
Lösung
Ändern Sie den Namen der Datenbank wieder in den ursprünglichen Namen. Führen Sie die folgenden Schritte aus:
- Beenden Sie den Dienst, an dem Sie Änderungen vornehmen müssen.
- Führen Sie folgende Abfrage in SQL Server Management Studio aus:
ALTER DATABASE <Datenbankname> MODIFY NAME = <neuer_Datenbankname>Falls dies nicht möglich ist, weil eine vorhandene Datenbank denselben Namen verwendet, müssen Sie einen anderen Pfad verwenden. Wenn Sie ursprünglich vorhatten, ein Duplikat der Datenbank zu Testzwecken zu erstellen, müssen Sie eine neue Datenbank unter einem neuen Namen anlegen. Verwenden Sie den ArcSDE Post Installation Wizard zum Füllen des Repositorys, Autorisieren der Software und zum Erstellen des Dienstes. Die Daten können Sie in ArcCatalog von einer Datenbank in die andere kopieren.
gsrvr.exe – DLL-Initialisierung fehlgeschlagen oder gsrvr.exe – Anwendungsfehler: Die Anwendung wurde nicht ordnungsgemäß initialisiert
Unter Windows wird der ArcSDE-Dienst als nicht interaktiver Desktop gestartet. Die maximale Größe des Heap-Speichers, der nicht interaktiven Desktops zugewiesen wird, ist durch den Windows-Initialisierungsparameter "SharedSection" eingeschränkt. Wenn Sie diese Fehlermeldung erhalten, müssen Sie den Parameter "SharedSection" möglicherweise ändern.
Der Parameter CONNECTIONS in der Tabelle SERVER_CONFIG schränkt ferner die Anzahl gleichzeitiger Verbindungen zu einem einzelnen ArcSDE-Dienst ein und muss ggf. auch nach oben angepasst werden.
- Heap-Speicher
Die maximale Größe des Heap-Speichers für alle Desktops, sowohl interaktive als auch nicht interaktive, liegt bei 48 MB. Da die Speichergröße endlich ist, sollten Sie beim Anpassen des Parameters "SharedSection" sehr vorsichtig sein. Wenn der ArcSDE-Dienst als Domänenkonto gestartet wird, reserviert gsrvr.exe aus dem Desktop einen Heap-Speicher von 512 KB für den nicht interaktiven Desktop, der für den ArcSDE-Dienst erstellt wird. Wenn der ArcSDE-Dienst als LocalSystem-Konto gestartet wird, reserviert "gsrvr.exe" aus dem gemeinsamen Desktop einen Heap-Speicher von 512 KB für nicht interaktive Desktops, der für alle Dienste gilt, die als "LocalSystem" ausgeführt werden. Wenn der ArcSDE-Dienst als LocalSystem-Konto mit aktivierter Option "Datenaustausch zwischen Dienst und Desktop zulassen" gestartet wird, reserviert "gsrvr.exe" aus dem Standard-Desktop einen Heap-Speicher von 3 MB für interaktive Desktops. LösungenDie Lösung ist von der ArcSDE-Plattform abhängig. Derzeit gibt es keine Möglichkeit zu ermitteln, wie viel Speicher durch einen einzelnen Desktop belegt wird oder wie viel Speicher im globalen Pool noch verfügbar ist. Mit dem Windows Resource Kit-Werkzeug oh.exe können Sie überwachen, wie viele Desktops verwendet werden.
- Ändern Sie den Wert des Parameters "SharedSection" in der Registrierung.
Bestimmen Sie die Anzahl der benötigten gsrvr-Prozesse. Bei Clients wie ArcView, ArcEditor und ArcExplorer ist ein gsrvr-Prozess normalerweise eine einzelne ArcSDE-Verbindung. Bei ArcIMS hängt die Anzahl der gsrvr-Prozesse vom Diensttyp ab. Ausgehend von zwei virtuellen Server-Threads pro Spatial Server-CPU richten Sie sich nach folgender Formel:
(2 image service threads * total CPUs) + (number of query server threads)
Beispiel: (2 * 8) + 8 = 24 gsrvrs. Bei dieser Empfehlung wird davon ausgegangen, dass Sie einen Image- und einen Abfragedienst verwenden und sich alle AXLs als derselbe Benutzer und dieselbe Datenbank mit dem ArcSDE-Server verbinden. Wenn in Ihren AXLs auf unterschiedliche Datenbanken oder Benutzer verwiesen wird, ändert sich die Formel wie folgt:
(#databases * #mapservice threads)+ (#dbs*#queryservices)
Wenn die Anzahl der gsrvr-Prozesse 64 übersteigt, was der CONNECTIONS-Standardeinstellung in der Tabelle SERVER_CONFIG von ArcSDE entspricht, sollten Sie entweder einige dieser Verbindungen in direkte Verbindungen ändern oder den dritten SharedSection-Parameter in der Registrierung erhöhen. Da eine direkte Verbindung als Thread im Client-Prozess ausgeführt wird, wird ihr auf dem ArcSDE-Server kein Desktop zugewiesen. WARNUNG: Die Anleitungen in diesem Schritt beinhalten Änderungen an wesentlichen Komponenten des Betriebssystems. Erstellen Sie Sicherungskopien der Betriebssystemdateien einschließlich der Registrierung, bevor Sie fortfahren. Wenden Sie sich ggf. an einen erfahrenen Systemspezialisten. Esri kann keine Haftung für unkorrekte Änderungen im Rahmen der hier beschriebenen Schritte übernehmen. Alle Änderungen erfolgen daher auf eigenes Risiko. Sie ändern den Parameter mit dem Registrierungseditor von Windows. Geben Sie im Dialogfeld "Ausführen" von Windows den Befehl "regedit" ein, und klicken Sie auf OK. Navigieren Sie zu folgendem Registrierungspfad, und doppelklicken Sie auf den Windows-Registrierungsschlüssel.
\\HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems
Diese Zeichenfolge enthält die Startparameter für Windows. Dort finden Sie auch den Parameter "SharedSection". Der Standardwert ist 1024,3072,512. Das dritte Argument steht für die maximale Größe des Heap-Speichers, der nicht interaktiven Desktops zugewiesen ist. Standardmäßig ist der Wert auf 512 KB oder 1 MB eingestellt. Bei dieser Einstellung akzeptiert der ArcSDE-Dienst etwa 56 Verbindungen. Wenn Sie die maximale Größe des Heaps für nicht interaktive Desktops auf 2 MB erhöhen, kann der ArcSDE-Dienst 270 Verbindungen akzeptieren. Um eine maximale Heap-Größe von 2 MB für nicht interaktive Desktops festzulegen, stellen Sie den Wert im Parameter "SharedSection" auf 1024,3072,2048 ein. Erhöhen Sie den dritten Wert im Parameter "SharedSection" von "512" auf "1024". Dadurch wird die Anzahl der gsrvr-Prozesse verdoppelt, die der ArcSDE-Dienst erzeugen kann.
SharedSection=1024,3076,1024
Wenn Sie Änderungen am Parameter "SharedSection" vorgenommen haben, muss der Server neu gestartet werden.
- SQL Server-Standorte mit Windows-Authentifizierung für ArcSDE-Verbindungen
Bei Benutzern, die sich mit der Windows-Authentifizierung bei ArcSDE-Diensten anmelden, gestaltet sich der Verbindungsvorgang möglicherweise anders. Wenn der ArcSDE-Dienst einen gsrvr-Prozess von einer Verbindung mit Windows-Authentifizierung erzeugt, wird dieser gsrvr-Prozess nicht vom selben Desktop zugewiesen wie der Serverprozess ("giomgr.exe"), sondern er erhält seinen eigenen (nicht interaktiven) Desktop von 512 KB Größe. Mehreren Verbindungen mit Windows-Authentifizierung vom selben Computer wird vom selben Desktop Speicher zugewiesen, Verbindungen von unterschiedlichen Computern werden dagegen neue Desktops zugewiesen. Wenn Sie ausschließlich mit Windows-Authentifizierung arbeiten, können Sie eine größere Anzahl von ArcSDE-Verbindungen ermöglichen, wenn Sie die Größe des Heap-Speichers für interaktive und nicht interaktive Desktops verringern, statt sie wie im oben beschriebenen Verfahren zu erhöhen. Dieses Verbindungsverhalten wird in zukünftigen Versionen von ArcSDE for SQL Server geändert.
- Standorte mit Terminaldiensten oder Citrix auf dem ArcSDE-Server
Terminaldienste reduzieren den globalen Speicherpool für Desktops von 48 MB auf 20 MB. Das heißt, insgesamt werden weniger Desktops erstellt. Wenn Sie in einer solchen Umgebung arbeiten, können Sie den dritten Parameter von "SharedSection" erhöhen. Seien Sie aber vorsichtig, was die Anzahl der verschiedenen nicht lokalen Systemdienste angeht. Beachten Sie, dass ein nicht lokaler Systemdienst beim Start Speicher aus dem globalen Speicherpool für einen neuen Desktop erhält. Es wird davon abgeraten, dass auf SQL Server-Standorten Terminaldienste für ArcSDE-Verbindungen mit Windows-Authentifizierung verwendet werden. Wenn diese Konfiguration notwendig ist und Probleme auftreten, weil nicht genügend ArcSDE-Verbindungen unterstützt werden, können Sie dies möglicherweise lösen, indem Sie es dem ArcSDE-Dienst ermöglichen, mit dem Desktop zu interagieren. Ändern Sie in diesem Fall nicht dem Parameter "SharedSection".
- Ändern Sie den Wert des Parameters "SharedSection" in der Registrierung.
- SERVER_CONFIG-Parameter CONNECTIONS
Wenn Sie wiederholt die maximale Anzahl gleichzeitiger Verbindungen erreichen, die im Initialisierungsparameter CONNECTIONS in der Systemtabelle SERVER_CONFIG (SDE_SERVER_CONFIG in SQL Server- und PostgreSQL-Datenbanken) festgelegt ist, müssen Sie den Wert dieses Parameters erhöhen. Der Standardwert ist 48. Weitere Informationen finden Sie unter Datei "giomgr.defs" und Systemtabelle SERVER_CONFIG.
Sie können den Initialisierungsparameter CONNECTIONS in der Tabelle SERVER_CONFIG mit dem administrativen Befehl "sdeconfig" ändern.Hinweis:Ab ArcSDE 9 werden auch direkte Verbindungen zur Anzahl der im Parameter CONNECTIONS berücksichtigten Verbindungen addiert. Mit anderen Worten darf die Summe der direkten Verbindungen und der Verbindungen über den ArcSDE-Dienst nicht den Wert im Parameter CONNECTIONS überschreiten.
- Um den aktuellen Wert des Parameters CONNECTIONS anzuzeigen, geben Sie in der Eingabeaufforderung den Befehl "sdeconfig –o list" ein. Die Syntax für diesen Befehl lautet:
sdeconfig –o list [–p <SDE_admin_password>]
- Ändern Sie den Wert für den Parameter CONNECTIONS mit dem Befehl "sdeconfig –o alter".
sdeconfig –o alter –v <Property_Name=Value,...> [–i <service] [–s <server_name>] [–D <database>] –u <SDE_admin_user> [–p <SDE_admin_password>] [–N] [–q]
- Um den aktuellen Wert des Parameters CONNECTIONS anzuzeigen, geben Sie in der Eingabeaufforderung den Befehl "sdeconfig –o list" ein. Die Syntax für diesen Befehl lautet: