Отладка приложения Java Service Fabric с помощью Eclipse

  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 выберите Запустить -> Конфигурации отладки -> Свойства удаленного приложения 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.

Дальнейшие действия