- 30.03.2017
- 4 minute de citit
In acest articol
Acest subiect descrie transferul in modelul de urmarire a activitatii Windows Communication Foundation (WCF).
Definitia transferului
Transferurile intre activitati reprezinta relatii de cauzalitate intre evenimente din activitatile conexe in cadrul punctelor finale. Doua activitati sunt legate de transferuri atunci cand fluxul de control intre aceste activitati, de exemplu, o metoda de apel care trece limitele activitatii. In WCF, cand sunt primiti octeti pe serviciu, activitatea Ascultati la este transferata la activitatea Primire octeti in care este creat obiectul mesaj. Pentru o lista a scenariilor de urmarire de la un capat la altul, precum si a activitatii si proiectarii lor de urmarire, consultati Scenarii de urmarire de la un capat la altul.
Pentru a emite urmele de transfer, utilizati setarea ActivityTracing pe sursa de urmarire, dupa cum este demonstrat de urmatorul cod de configurare.
<source name = “System.ServiceModel” switchValue = “Verbose, ActivityTracing”>
Utilizarea Transferului pentru corelarea activitatilor din punctele finale
Activitatile si transferurile permit utilizatorului sa localizeze probabil cauza principala a unei erori. De exemplu, daca transferam inainte si inapoi intre activitatile M si respectiv N in componentele M si N, si se intampla un accident in N imediat dupa transferul inapoi la M, putem trage concluzia ca este probabil din cauza transmiterii datelor inapoi de N catre M.
O urma de transfer este emisa de la activitatea M la activitatea N atunci cand exista un flux de control intre M si N. De exemplu, N efectueaza unele lucrari pentru M datorita unui apel de metoda care trece limitele activitatilor. N poate exista deja sau a fost creat. N este generat de M atunci cand N este o activitate noua care efectueaza unele lucrari pentru M.
Un transfer de la M la N nu poate fi urmat de un transfer inapoi de la N la M. Acest lucru se datoreaza faptului ca M poate genera unele lucrari in N si nu urmareste cand N finalizeaza acea lucrare. De fapt, M poate termina inainte ca N sa-si termine sarcina. Acest lucru se intampla in activitatea „Open ServiceHost” (M) care genereaza activitati de ascultare (N) si apoi se termina. Un transfer inapoi de la N la M inseamna ca N a finalizat lucrarile legate de M.
N poate continua sa efectueze alte prelucrari care nu au legatura cu M, de exemplu, o activitate de autentificare existenta (N) care continua sa primeasca cereri de conectare (M) din diferite activitati de autentificare.
O relatie de cuibarire nu exista neaparat intre activitatile M si N. Acest lucru se poate intampla din doua motive. In primul rand, cand activitatea M nu monitorizeaza procesarea efectiva efectuata in N, desi M a initiat N. In al doilea rand, cand N exista deja.
Exemplu de transferuri
Urmatoarele enumera doua exemple de transfer.
-
Cand creati o gazda de serviciu, constructorul castiga controlul din codul de apel sau codul de apel se transfera catre constructor. Cand constructorul a terminat executarea, acesta returneaza controlul la codul de apel sau constructorul transfera inapoi la codul de apel. Acesta este cazul unei relatii imbricate.
-
Cand un ascultator incepe sa proceseze date de transport, acesta creeaza un fir nou si transmite activitatii de primire octeti contextul adecvat pentru procesare, transmitere a controlului si date. Cand firul respectiv a terminat de procesat cererea, activitatea Receive Bytes nu transmite nimic inapoi ascultatorului. In acest caz, avem un transfer, dar niciun transfer, din noua activitate a firului. Cele doua activitati sunt legate, dar nu sunt cuibarite.
Secventa de transfer de activitate
O secventa de transfer de activitate bine formata include urmatorii pasi.
-
Incepeti o noua activitate, care consta in selectarea unui nou gAId.
-
Emiteti o urma de transfer catre acel nou gAId din ID-ul de activitate curent
-
Setati noul ID in TLS
-
Emiteti o urma de inceput pentru a indica inceputul noii activitati prin.
-
Revenirea la activitatea initiala consta din urmatoarele:
-
Emiteti o urma de transfer catre gAId original
-
Emiteti o urma Stop pentru a indica sfarsitul noii activitati
-
Setati TLS la vechiul gAId.
Urmatorul exemplu de cod arata cum se face acest lucru. Acest esantion presupune ca se efectueaza un apel de blocare la transferul catre noua activitate si include urmarirea suspendarii / reluarii.
// 0. Creati o sursa de urmarire TraceSource ts = new TraceSource (“myTS”); // 1. aminteste-ti activitatea existenta („ambientala”) pentru curatare Guid oldGuid = Trace.CorrelationManager.ActivityId; // aceasta va fi noua noastra activitate Guid newGuid = Guid.NewGuid (); // 2. transfer de apel, indicand faptul ca trecem la noul AID ts.TraceTransfer (667, “Transferare”., NewGuid); // 3. Suspendati activitatea curenta. ts.TraceEvent (TraceEventType.Suspend, 667, „Suspend: Activity” + i-1); // 4. setati noul AID in TLS Trace.CorrelationManager.ActivityId = newGuid; // 5. Emiteti urmarirea de start ts.TraceEvent (TraceEventType.Start, 667, “Boundary: Activity” + i); // urmareste ceva ts.TraceEvent (TraceEventType.Information, 667, “Buna ziua de la activitate” + i); // Efectuati munca // ceva de lucru. // Returneaza ts. TraceEvent (TraceEventType.Information, 667, „Lucrare finalizata la activitate” + i); // 6. Emiteti transferul revenind la activitatea initiala ts.TraceTransfer (667, „Transferarea inapoi.”, OldGuid); // 7. Emiteti urmarirea finala ts.TraceEvent (TraceEventType.Stop, 667, “Boundary: Activity” + i); // 8. Schimbati variabila tls la AID Trace.CorrelationManager.ActivityId = oldGuid original; // 9. Reluati vechea activitate ts.TraceEvent (TraceEventType.Resume, 667, “Reincepeti: Activitate” + i-1); Schimbati variabila tls la AID Trace.CorrelationManager.ActivityId = oldGuid original; // 9. Reluati vechea activitate ts.TraceEvent (TraceEventType.Resume, 667, „Reincepeti: Activitate” + i-1); Schimbati variabila tls la AID Trace.CorrelationManager.ActivityId = oldGuid original; // 9. Reluati vechea activitate ts.TraceEvent (TraceEventType.Resume, 667, „Reincepeti: Activitate” + i-1);
Vezi si
- Configurarea urmaririi
- Utilizarea Service Trace Viewer pentru vizualizarea urmelor corelate si depanare
- Scenarii de urmarire end-to-end
- Instrument pentru vizualizarea urmaririi serviciului (SvcTraceViewer.exe)
malena la pugliese pov xxx alex magni
mucche al pascolo video xxx anal casting
michelle ferrari interracial xxx bambole
italian porno free xxx bambole
rossella xxx xxx cani
porno cento x cento streaming xxx canzoni
porn movies italian xxx cappuccetto rosso
la maison dell’amour xxx casting italia
malena la pugliese porn xxx casting italiani
porn movies streaming xxx casting italiano
malena la pugliese rocco xxx cento per cento
roberta gemma sesso xxx cento x cento
culi rotti xxx xxx centopercento
xxx vittoria risi xxx centoxcento
gang bang malena xxx centoxcento film
streaming porno movies xxx ciccione
cento x cento on streaming xxx culi rotti
valentina demmy xxx dottoresse
free porn video italian xxx fake taxi
trixi porn xxx famiglia








