Yayma
Bu konuda, Windows Communication Foundation (WCF) izleme modelindeki etkinlik yayma işlemi açıklanmaktadır.
Etkinlikleri Uç Noktalar Arasında Ilişkilendirmek için Yayma 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 nedeniyle zaman aşımına uğradıysa, her iki hata da doğrudan bağıntı 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 izleme kaynağının System.ServiceModel
özniteliğini ayarlayınpropagateActivity
.
<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 bu gAId ile bir Başlangıç ve Durdurma izlemesi vardı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.
Eşitleme
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 makinelerdeki olayları saat tutarsızlığıyla eşitleyebilir. Ö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.