Witam serdecznie,
Mam problem ze zrozumieniem działania funkcji WriteEventWithRelatedActivityId w klasie EventSource. Funkcja ta posiada parametr childActivityID, którego przeznaczenia za bardzo nie rozumiem. Do tej pory udało mi się ustalić jak by dwa przeznaczenia tego parametru, poniżej zamieszam opis.
Zastosowanie pierwsze - parametr ten wskazuje na parent ActivityID (dziwne bo parametr ma w nazwie child)
Na podstawie Framework Reference udało mi się ustalić że WriteEventWithRelatedActivityId, wywołuje za pomocą PInvoke natywną funkcję EventWriteTransfer, gdzie odpowiednikiem childActivityID jest po prostu RelatedActivityId. Dokumentacja opisuje że po zmianie ActivityId na nowe, do funkcji powinno zostać przekazane poprzednie ActivityId (parent) jako RelatedActivityId. https://msdn.microsoft.com/en-us/library/windows/desktop/aa363751(v=vs.85).aspx
Drugie zastosowanie - parametr ten wskazuje na child ActivityID
Na podstawie https://slab.codeplex.com/wikipage?title=ActivityTracingAndSampling udało mi się ustalić że tą funkcje wywołuje się w celu zakomunikowania, że ActivityID zostanie zmieniony na ChildActivityID. Czyli też jest przedstawione relacja Parent <-> Child tylko w odwrotny sposób.
W krokach:
- Dokonana zostanie zmiana ActivityID na ChildActivityID
- Logowanie zdarzeń już na nowym ActivityID
- Dokonana zostanie zmiana NewActivityID na OldActivityID (przez przyrostek child parametru, teoretycznie nie jest możliwe zakomunikowanie tej zmiany)
W jaki sposób należy korzystać z metody WriteEventWithRelatedActivityId?