Aracılığıyla paylaş


Yayma

Bu konuda, Windows Communication Foundation (WCF) izleme modelindeki etkinlik yayma işlemi açıklanmaktadır.

Etkinlikleri Uç Cihazlar Arasında İlişkilendirmek İçin Yayılma Mekanizması Kullanma

Yayma, kullanıcıya uygulama uç noktaları arasında aynı işlem birimi için hata izlemelerinin doğrudan bağıntısını (örneğin bir istek) sağlar. Aynı işlem birimi için farklı uç noktalarda yayılan hatalar, uygulama etki alanlarında bile aynı etkinlikte gruplandırılır. Bu işlem, ileti üst bilgilerinde etkinlik kimliğinin yayılması yoluyla gerçekleştirilir. Bu nedenle, istemci sunucudaki bir iç hata yüzünden zaman aşımına uğradığında, her iki hata da doğrudan ilişki kurulabilmesi için aynı etkinlikte görünür.

Bunu yapmak için önceki örnekte gösterildiği gibi ayarını kullanın ActivityTracing . Ayrıca, tüm uç noktalarda propagateActivity izleme kaynağı için System.ServiceModel özniteliğini ayarlayın.

<source name="System.ServiceModel" switchValue="Verbose,ActivityTracing" propagateActivity="true" >  

Etkinlik yayma, WCF'nin TLS'de etkinlik kimliğini içeren giden iletilere üst bilgi eklemesine neden olan yapılandırılabilir bir özelliktir. Bunu sunucu tarafında sonraki izlemelere ekleyerek istemci ve sunucu etkinlikleri arasında bağıntı oluşturabiliriz.

Yayma Tanımı

Aşağıdaki koşulların tümü geçerliyse, Etkinlik M'sinin gAId değeri N etkinliğine yayılır.

  • M nedeniyle N oluşturuldu

  • M'nin gAId değeri N ile bilinir

  • N'nin gAId değeri M'nin gAId değerine eşittir.

gAId, aşağıdaki XML şemasında gösterildiği gibi ActivityId ileti üst bilgisi aracılığıyla yayılır.

<xsd:element name="ActivityId" type="integer" minOccurs="0">  
  <xsd:attribute name="CorrelationId" type="integer" minOccurs="0"/>  
</xsd:element>  

Aşağıda ileti üst bilgisine bir örnek verilmiştir.

<MessageLogTraceRecord>  
  <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"
                      xmlns:a="http://www.w3.org/2005/08/addressing">  
    <s:Header>  
      <a:Action s:mustUnderstand="1">http://Microsoft.ServiceModel.Samples/ICalculator/Subtract  
      </a:Action>  
      <a:MessageID>urn:uuid:f0091eae-d339-4c7e-9408-ece34602f1ce  
      </a:MessageID>  
      <ActivityId CorrelationId="aaaa0000-bb11-2222-33cc-444444dddddd"
               xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">  
        17f59a29-b435-4a15-bf7b-642ffc40eac8  
      </ActivityId>  
      <a:ReplyTo>  
          <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>  
      </a:ReplyTo>  
      <a:To s:mustUnderstand="1">net.tcp://localhost/servicemodelsamples/service</a:To>  
   </s:Header>  
   <s:Body>  
     <Subtract xmlns="http://Microsoft.ServiceModel.Samples">  
       <n1>145</n1>  
       <n2>76.54</n2>  
     </Subtract>  
   </s:Body>  
  </s:Envelope>  
</MessageLogTraceRecord>  

Yayma ve Etkinlik Sınırları

Etkinlik kimliği uç noktalar arasında yayıldığında, ileti alıcısı bu (yayılan) etkinlik kimliğiyle bir Başlangıç ve Durdurma izlemesi yayar. Bu nedenle, her izleme kaynağından o gAId ile ilişkili bir Başlangıç ve Durdurma izlemesi bulunmaktadır. Uç noktalar aynı işlemdeyse ve aynı izleme kaynağı adını kullanıyorsa, aynı lAId ile birden çok Başlat ve Durdur (aynı gAId, aynı izleme kaynağı, aynı işlem) oluşturulur.

Senkronizasyon

Olayları farklı makinelerde çalışan uç noktalar arasında eşitlemek için, iletilerde yayılan ActivityId üst bilgisine bir CorrelationId eklenir. Araçlar bu kimliği kullanarak saat tutarsızlığı olan makinelerdeki olayları senkronize edebilir. Özellikle, Hizmet İzleme Görüntüleyicisi aracı uç noktalar arasındaki ileti akışlarını göstermek için bu kimliği kullanır.

Ayrıca bakınız