Eclipse を使用して Java Service Fabric アプリケーションをデバッグする

  1. Service Fabric 開発環境のセットアップの手順に従って、ローカル開発クラスターを起動します。

  2. デバッグするサービスの entryPoint.sh を更新して、リモート デバッグ パラメーターを使用して Java プロセスを開始します。 このファイルは、次の場所にあります: ApplicationName\ServiceNamePkg\Code\entrypoint.sh。 この例では、デバッグ用にポート 8001 が設定されています。

    java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -jar myapp.jar
    
  3. デバッグ対象のサービスのインスタンス数またはレプリカ数を 1 に設定して、アプリケーション マニフェストを更新します。 この設定により、デバッグに使用されるポートの競合が回避されます。 たとえば、ステートレス サービスの場合は、 InstanceCount="1" を設定し、ステートフル サービスの場合、ターゲットと最小レプリカ セットのサイズを 1 に設定します。次のように TargetReplicaSetSize="1" MinReplicaSetSize="1"

  4. アプリケーションをデプロイします。

  5. Eclipse IDE で、[ Run -> Debug Configurations -> Remote Java Application and input connection properties ] を選択し、プロパティを次のように設定します。

    Host: ipaddress
    Port: 8001
    
  6. 必要なポイントにブレークポイントを設定し、アプリケーションをデバッグします。

アプリケーションがクラッシュしている場合は、コアダンプを有効にすることもできます。 シェルで ulimit -c を実行し、0 を返した場合、コアダンプは有効になりません。 無制限のコアダンプを有効にするには、次のコマンドを実行します: ulimit -c unlimited。 コマンド ulimit -aを使用して状態を確認することもできます。 コアダンプ生成パスを更新する場合は、 echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern実行します。

次のステップ