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 Server Manager bietet mehrere Einstellungen, die Sie beim Debuggen von Java-SOEs unterstützen. Diese Einstellungen werden im Folgenden ausführlicher beschrieben. Sie können .NET-SOEs mit dem Visual Studio-Debugger debuggen, indem Sie den Workflow in der Hilfe zu ArcObjects .NET SDK befolgen.

Debugging-Workflow für Java-SOEs

Zum Debuggen der SOE müssen Sie folgende Schritte ausführen:

Schritte:
  1. Verwenden Sie ArcGIS Server Manager, wenn Sie Ihre SOE bereitstellen möchten.
  2. Verwenden Sie Manager, wenn Sie das Debugging Ihrer SOE aktivieren und Debugging-Einstellungen konfigurieren möchten. Diese Schritte werden im Folgenden detaillierter beschrieben.
  3. Legen Sie Haltepunkte an den gewünschten Positionen im SOE-Code fest.
  4. Beenden Sie den Service, und starten Sie ihn neu.
  5. 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.
  6. Verwenden Sie Manager zum Deaktivieren der Debugging-Funktion.

Konfigurieren von Java-SOE-Debugging-Einstellungen in Manager

Zur Vereinfachung des Debuggings bietet ArcGIS 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:

Schritte:
  1. Melden Sie sich bei ArcGIS Server Manager an, und klicken Sie auf Site.
  2. Klicken Sie auf GIS-Server und dann im linken Menü auf Erweiterungen.
  3. Klicken Sie auf Debug-Einstellungen.
  4. Aktivieren Sie das Kontrollkästchen Debugging von Erweiterungen aktivieren.

    Dadurch werden die anderen Optionen im Dialogfeld aktiviert.

  5. 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.

  6. Zudem können Sie optional einen Portbereich angeben, der beim Debuggen verwendet werden soll.
  7. Klicken Sie auf Speichern.

Sie können nun die Erweiterung debuggen, indem Sie den Service beenden und 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 beendet und neu gestartet werden.

AchtungAchtung:

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.

5/16/2014