Aracılığıyla paylaş


Öğretici: Yerel Service Fabric kümesinde dağıtılan bir Java uygulamasının hatasını ayıklama

Bu öğretici, bir dizinin ikinci bölümüdür. Eclipse for the Service Fabric uygulaması kullanılarak uzak bir hata ayıklayıcının nasıl ekleneceğini öğreneceksiniz. Ayrıca çalıştırılan uygulamalardaki günlüklerin geliştirici için uygun bir konuma nasıl yeniden yönlendirileceğini de öğreneceksiniz.

Bu öğretici dizisinde şunların nasıl yapıldığını öğrenirsiniz:

Serinin ikinci bölümünde şunları öğrenirsiniz:

  • Eclipse kullanarak Java uygulamasının hatasını ayıklama
  • Günlükleri yapılandırılabilir bir konuma yeniden yönlendirme

Önkoşullar

Bu öğreticiye başlamadan önce:

  • Mac veya Linux için geliştirme ortamınızı ayarlayın. Eclipse eklentisini, Gradle’ı, Service Fabric SDK’yı ve Service Fabric CLI’yı (sfctl) yükleme yönergelerini izleyin.

Voting örnek uygulamasını indirme

Bu öğretici serisinin birinci kısmında Voting örnek uygulamasını oluşturmadıysanız, indirebilirsiniz. Komut penceresinde, örnek uygulama deposunu yerel makinenize kopyalamak için aşağıdaki komutu çalıştırın.

git clone https://github.com/Azure-Samples/service-fabric-java-quickstart

Uygulamayı derleyin ve yerel geliştirme kümesine dağıtın .

Eclipse kullanarak Java uygulamasının hatasını ayıklama

  1. Makinenizde Eclipse IDE'yi açın ve Dosya -> İçeri Aktar... seçeneğine tıklayın.

  2. Açılan pencerede Genel -> Çalışma Alanına Var Olan Projeler seçeneğini belirleyin ve İleri'ye basın.

  3. Projeleri İçeri Aktar penceresinde Kök dizini seçin seçeneğini belirleyin ve Oylama dizinini seçin. Birinci öğretici serisini izlediyseniz Oylama dizini, Eclipse çalışma alanı dizinindedir.

  4. Hatasını ayıklamak istediğiniz hizmetin entryPoint.sh öğesini güncelleştirin; böylece hizmet, uzaktan hata ayıklama parametreleriyle Java işlemini başlatır. Bu öğreticide durum bilgisi olmayan ön uç kullanılır: Voting/VotingApplication/VotingWebPkg/Code/entryPoint.sh. Bu örnekte hata ayıklama için 8001 numaralı bağlantı noktası ayarlanmıştır.

    java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -jar VotingWeb.jar
    
  5. Hatası ayıklanmakta olan hizmet için çoğaltma sayısını veya örnek sayısını ayarlayarak Uygulama Bildirimini güncelleştirin. Bu ayar, hata ayıklama için kullanılan bağlantı noktası için çakışmaları önler. Örneğin, şu işlemleri izleyerek durum bilgisi olmayan hizmetler için InstanceCount="1" ayarını yapın ve durum bilgisi olan hizmetler için hedefi ve en az çoğaltma kümesi boyutlarını 1 olarak ayarlayın: TargetReplicaSetSize="1" MinReplicaSetSize="1".

  6. Eclipse IDE'de Çalıştır -> Hata Ayıklama Yapılandırmaları -> Uzak Java Uygulaması'nı seçin, Yeni düğmesine basın, özellikleri aşağıdaki gibi ayarlayın ve Uygula'ya tıklayın.

    Name: Voting
    Project: Voting
    Connection Type: Standard
    Host: localhost
    Port: 8001
    
  7. Voting/VotingWeb/src/statelessservice/HttpCommunicationListener.java dosyasının 109. satırına bir kesme noktası ekleyin.

  8. Paket Gezgini'nde Oylama projesine sağ tıklayın ve Service Fabric -> Uygulamayı Yayımla ... öğesine tıklayın.

  9. Uygulama Yayımla penceresinde açılan listeden Local.json seçeneğini belirleyin ve Yayımla’ya tıklayın.

  10. Eclipse IDE'de Çalıştır -> Hata Ayıklama Yapılandırmaları -> Uzak Java Uygulaması'nı seçin, oluşturduğunuz Oylama yapılandırmasına tıklayın ve Hata Ayıkla'ya tıklayın.

  11. Web tarayıcınıza gidin ve localhost:8080 adresine erişin. Bu, kesme noktasına otomatik olarak isabet eder ve Eclipse Hata Ayıklama perspektifine girer.

Artık Eclipse'te herhangi bir Service Fabric uygulamasında hata ayıklamak için aynı adımları uygulayabilirsiniz.

Uygulama günlüklerini özel konuma yeniden yönlendirme

Aşağıdaki adımlarda, varsayılan /var/log/syslog konumundaki uygulama günlüklerinin özel bir konuma nasıl yeniden yönlendirileceği gösterilmektedir.

  1. Şu anda Service Fabric Linux kümelerinde çalışan uygulamalar yalnızca tek bir günlük dosyasının alınıp alınmadığını desteklemektedir. Günlüklerin her zaman /tmp/mysfapp0.0.log'a gitmesi için bir uygulama ayarlamak için aşağıdaki Voting/VotingApplication/VotingWebPkg/Code/logging.properties konumunda logging.properties adlı bir dosya oluşturun ve aşağıdaki içeriği ekleyin.

    handlers = java.util.logging.FileHandler
    
    java.util.logging.FileHandler.level = ALL
    java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
    
    # This value specifies your custom location.
    # You will have to ensure this path has read and write access by the process running the SF Application
    java.util.logging.FileHandler.pattern = /tmp/mysfapp0.0.log
    
  2. Java yürütme komutu için Voting/VotingApplication/VotingWebPkg/Code/entryPoint.sh konumuna aşağıdaki parametreyi ekleyin:

    -Djava.util.logging.config.file=logging.properties
    

    Aşağıdaki örnekte, önceki bölümdeki yürütmeye benzer şekilde hata ayıklayıcı eklenmiş bir örnek yürütme gösterilmektedir.

    java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -Djava.util.logging.config.file=logging.properties -jar VotingWeb.jar
    

Bu aşamada, Service Fabric Java uygulamalarınızı geliştirirken nasıl hata ayıklaması yapacağınızı ve uygulama günlüklerinize erişeceğinizi öğrendiniz.

Sonraki adımlar

Öğreticinin bu bölümünde, şunların nasıl yapıldığını öğrendiniz:

  • Eclipse kullanarak Java uygulamasının hatasını ayıklama
  • Günlükleri yapılandırılabilir bir konuma yeniden yönlendirme

Sonraki öğreticiye ilerleyin: