Debuggen einer Serverobjekterweiterung
Das Debuggen einer Serverobjekterweiterung (SOE) kann Sie vor gewisse Herausforderungen stellen, da Sie in einen laufenden Service-Prozess eingreifen müssen. ArcGIS for Server Manager bietet mehrere Einstellungen, die Sie beim Debuggen von Java-SOEs unterstützen. Diese Einstellungen werden im Folgenden ausführlicher beschrieben.
Debugging-Workflow für Java-SOEs
Zum Debuggen der SOE müssen Sie folgende Schritte ausführen:
- Verwenden Sie ArcGIS for Server Manager, wenn Sie Ihre SOE bereitstellen möchten.
- Verwenden Sie Manager, wenn Sie das Debugging Ihrer SOE aktivieren und Debugging-Einstellungen konfigurieren möchten. Diese Schritte werden im Folgenden detaillierter beschrieben.
- Legen Sie Haltepunkte an den gewünschten Positionen im SOE-Code fest.
- Starten Sie den Service neu.
- Fügen Sie sofort einen Debugger an den Betriebssystemprozess an, der den Service ausführt. Wenn der Haltepunkt sich im SOE-Initialisierungscode befindet, wird der Haltepunkt ausgelöst, sobald der Service startet. Andernfalls wird der Haltepunkt ausgelöst, wenn Sie die SOE verwenden.
- Verwenden Sie Manager zum Deaktivieren der Debugging-Funktion.
Konfigurieren von Java-SOE-Debugging-Einstellungen in Manager
Zur Vereinfachung des Debuggings bietet ArcGIS for Server Manager die Möglichkeit, das SOE-Verhalten zu ändern. Sie können das Starten von Services unterbrechen, damit Sie den Debugger an den Service-Prozess anfügen können, bevor die SOE-Initialisierungsmethoden aufgerufen werden. Zudem können Sie einen Portbereich festlegen, der beim Debuggen des Service verwendet werden sollen.
Um auf diese Debugging-Einstellungen in Manager zuzugreifen, führen Sie die folgenden Schritte aus:
- Melden Sie sich bei ArcGIS for Server Manager an, und klicken Sie auf Site.
- Klicken Sie auf GIS-Server und dann im linken Menü auf Erweiterungen.
- Klicken Sie auf Debug-Einstellungen.
- Aktivieren Sie das Kontrollkästchen Debugging von Erweiterungen aktivieren.
Dadurch werden die anderen Optionen im Dialogfeld aktiviert.
- Aktivieren Sie optional Das Starten von Services unterbrechen und geben Sie die Anzahl der Sekunden ein, um die der Service-Start verzögert werden soll.
Es gibt SOE-Code, der nur einmal ausgeführt werden kann, wenn der Service startet. Dieser Code wird normalerweise in die Konstruktionsmethode der IObjectConstruct-Schnittstelle eingefügt. Wenn das Starten des Service unterbrochen wird, haben Sie Zeit, den Debugger an den Service-Prozess anzufügen, bevor die Konstruktionsmethode ausgeführt wird, und Sie können auf diese Weise alle Haltepunkte auslösen, die Sie im Code dieser Methode festgelegt haben.
- Zudem können Sie optional einen Portbereich angeben, der beim Debuggen verwendet werden soll.
- Klicken Sie auf Speichern.
Sie können nun die Erweiterung debuggen, indem Sie den Service erneut starten und den Debugger an den Betriebssystemprozess anfügen, der den Service ausführt. Wenn Sie ein Zeitfenster für die Unterbrechung des Service-Starts festlegen, müssen Sie den Debugger an den Service-Prozess anzufügen, bevor dieses Zeitfenster erreicht wird, da Sie ansonsten keine Haltepunkte in der Konstruktionsmethode der SOE auslösen können.
Der Service kann während des Debugging-Prozesses bei Bedarf jederzeit neu gestartet werden.

Nachdem Sie das Debugging der Erweiterung abgeschlossen haben, kehren Sie zu den Debug-Einstellungen zurück und deaktivieren Sie die Option Debugging von Erweiterungen aktivieren. Wenn Sie diesen Schritt nicht ausführen und die Einstellungen so konfiguriert haben, dass der Service beim Starten unterbrochen wird, führt dies bei jedem Start des Service zu einer Verzögerung.