Eclipse를 사용하여 Java Service Fabric 애플리케이션 디버그

  1. Service Fabric 개발 환경 설정의 단계에 따라 로컬 개발 클러스터를 시작합니다.

  2. 원격 디버그 매개 변수를 사용하여 Java 프로세스를 시작하도록 디버그하려는 서비스의 entryPoint.sh 업데이트합니다. 이 파일은 다음 위치에서 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. 원하는 지점에서 중단점을 설정하고 애플리케이션을 디버그합니다.

애플리케이션이 충돌하는 경우 coredumps를 사용하도록 설정할 수도 있습니다. 셸에서 실행하고 ulimit -c 0을 반환하는 경우 coredumps가 활성화되지 않습니다. 무제한 coredumps를 사용하도록 설정하려면 다음 명령을 ulimit -c unlimited실행합니다. 명령을 ulimit -a사용하여 상태를 확인할 수도 있습니다. coredump 생성 경로를 업데이트하려면 을 실행합니다 echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern.

다음 단계