Eseguire il debug dell'applicazione Service Fabric di Java con Eclipse

  1. Avviare un cluster di sviluppo locale seguendo la procedura descritta nell'articolo Configurazione dell'ambiente di sviluppo di Service Fabric.

  2. Aggiornare l'elemento entryPoint.sh del servizio di cui eseguire il debug in modo che avvii il processo Java con i parametri di debug remoto. Questo file si trova nel percorso seguente: ApplicationName\ServiceNamePkg\Code\entrypoint.sh. La porta 8001 è impostata per il debug in questo esempio.

    java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=y -Djava.library.path=$LD_LIBRARY_PATH -jar myapp.jar
    
  3. Aggiornare il manifesto dell'applicazione impostando il numero di istanze o di repliche per il servizio di cui eseguire il debug su 1. Questa impostazione evita che si verifichino conflitti per la porta usata per il debug. Per i servizi senza stato, ad esempio, impostare InstanceCount="1", mentre per i servizi con stato impostare la destinazione e le dimensioni minime del set di repliche su 1 nel modo seguente: TargetReplicaSetSize="1" MinReplicaSetSize="1".

  4. Distribuire l'applicazione.

  5. Nell'IDE di Eclipse selezionare Run (Esegui) -> Debug Configurations (Configurazioni di debug) -> Remote Java Application (Applicazione Java remota) e le proprietà di connessione di input e impostare le proprietà come segue:

    Host: ipaddress
    Port: 8001
    
  6. Impostare punti di interruzione nei punti desiderati ed eseguire il debug dell'applicazione.

Se l'applicazione si arresta in modo anomalo, è possibile abilitare elementi core dump. Eseguire ulimit -c in una shell e, se viene restituito 0, gli elementi core dump non sono abilitati. Per abilitare elementi core dump illimitati, eseguire questo comando: ulimit -c unlimited. È anche possibile verificare lo stato usando il comando ulimit -a. Se si vuole aggiornare il percorso di generazione degli elementi core dump, eseguire echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern.

Passaggi successivi