Debuggen der Service Fabric-Anwendung in Java mithilfe von Eclipse

  1. Um einen lokalen Cluster für die Entwicklung zu erstellen, folgen Sie den Schritten unter Einrichten der Service Fabric-Entwicklungsumgebung.

  2. Aktualisieren Sie „entryPoint.sh“ für den Dienst, den Sie debuggen möchten, sodass der Java-Prozess mit Remotedebugparametern gestartet wird. Sie finden diese Datei am folgenden Speicherort: ApplicationName\ServiceNamePkg\Code\entrypoint.sh. In diesem Beispiel wurde für das Debuggen Port 8001 festgelegt.

    java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -jar myapp.jar
    
  3. Aktualisieren Sie das Anwendungsmanifest, indem die Instanz- oder Replikatanzahl für den zu debuggenden Dienst auf 1 festlegen. Diese Einstellung vermiedet Konflikte an dem Port, der für das Debuggen verwendet wird. Legen Sie für zustandslose Dienste z.B. InstanceCount="1" und für zustandsbehaftete Dienste die Ziel- und Mindestgröße für Replikatgruppen wie folgt auf 1 fest: TargetReplicaSetSize="1" MinReplicaSetSize="1".

  4. Stellen Sie die Anwendung bereit.

  5. Wählen Sie in der Eclipse-IDE Ausführen -> Debug-Konfigurationen -> Entfernte Java-Anwendung und Eingabe der Verbindungseigenschaften und stellen Sie die Eigenschaften wie folgt ein:

    Host: ipaddress
    Port: 8001
    
  6. Legen Sie an den gewünschten Stellen Haltepunkte fest, und debuggen Sie die Anwendung.

Wenn die Anwendung abstürzt, können Sie auch Coredumps aktivieren. Führen Sie ulimit -c in einer Shell aus. Wenn dabei 0 zurückgegeben wird, sind Coredumps nicht aktiviert. Um unbegrenzte Coredumps zu aktivieren, führen Sie den folgenden Befehl aus: ulimit -c unlimited. Sie können den Status auch mit dem Befehl ulimit -a überprüfen. Wenn Sie den Pfad für die Coredump-Generierung ändern möchten, führen Sie echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern aus.

Nächste Schritte