Debuggen der Service Fabric-Anwendung in Java mithilfe von Eclipse
Um einen lokalen Cluster für die Entwicklung zu erstellen, folgen Sie den Schritten unter Einrichten der Service Fabric-Entwicklungsumgebung.
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
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"
.Stellen Sie die Anwendung bereit.
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
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.