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" と設定し、ステートフル サービスについては、TargetReplicaSetSize="1" MinReplicaSetSize="1" のように設定して、レプリカ セット サイズのターゲット値と最小値を 1 にします。

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

  5. Eclipse IDE で、[実行] -> [デバッグ構成] -> [リモート Java アプリケーション] を選択し、接続プロパティを次のように設定します。

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

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

次のステップ