COM+-spårning
Med COM+-spårningstjänsten kan du skapa egna administrativa program och diagnostikprogram som spårar status och prestanda för att köra COM+-program. COM+-spårning ger statistisk information om användningen av COM+-program samt statusinformation, till exempel om en COM+-serverprograminstans har pausats eller har återvunnits. Verktyg kan använda spårningsinformation i diagnostikövervakning eller i visningssyfte. Det administrativa verktyget Komponenttjänster använder till exempel COM+-spårning för att visa statusen för COM+-programinstanser i mapparna COM+ Applications och Running Processes.
COM+-spårning beräknar och uppdaterar regelbundet en uppsättning vanliga mått, vilket gör den här informationen tillgänglig för program som behöver den. Det liknar COM+ Instrumentation eftersom båda tjänsterna automatiskt samlar in data från COM+-programinstanser och gör dessa data tillgängliga för konsumenter. Det finns dock några viktiga skillnader mellan dessa tjänster, både i de funktioner som tillhandahålls och typisk användning. I följande tabell sammanfattas dessa skillnader.
COM+ Instrumentation | COM+-spårning |
---|---|
Detaljerade data. COM+-instrumentationstjänsten meddelar registrerade prenumeranter om diskreta enskilda händelser (till exempel metod anropad, objekt förstört) som inträffar i en COM+-programinstans. |
Aggregerade data. COM+-spårning beräknar och uppdaterar regelbundet vanliga mått för status och prestanda för COM+-programinstanser. |
Händelseprenumeranter beräknar vanligtvis mått på egen hand med hjälp av ad hoc-algoritmer och principer. |
Mått beräknas automatiskt av COM+-spårningstjänsten. Alla konsumenter får samma data utan stöd för anpassade mått. |
När du har registrerat en prenumeration får konsumenten ingen information om en COM+-programinstans förrän en händelse inträffar. |
Spårningsdata för alla COM+-programinstanser kan hämtas när som helst. |
Stöder endast en COM+-händelsebaserad prenumerationsmekanism för konsumenter. |
Stöder både en COM+-händelsebaserad prenumerationsmekanism och avsökning på ett lokalt COM-servergränssnitt. |
Exempel | |
Meddelanden när en metod anropas eller returneras. |
Genomsnittlig samtalssvarstid, antal metodanrop som lyckades eller misslyckades under en tidsperiod nyligen, antal objekt som för närvarande finns i ett metodanrop. |
Meddelanden när ett objekt läggs till i eller hämtas från objektpoolen. |
Antal objekt i poolen, totalt antal objekt. |
Meddelanden när ett COM+-serverprogram startas, pausas eller återanvänds. |
Status för COM+-serverprogramprocessen (till exempel om den har pausats eller återvinns). |
Meddelanden om att transaktionen startar, förbereder, avbryter och genomför händelser. |
Ingen motsvarighet. |
Meddelanden om lyckade och misslyckade autentiseringsförsök på metodanropsnivå. |
Ingen motsvarighet. |
Även om COM+-spårning är mer begränsad när det gäller dataomfång och flexibilitet vid beräkning av mått, bör de mått som den tillhandahåller vara tillräckliga för en mängd olika administrativa program och diagnostikprogram. Om du använder COM+-spårning kan du när det är möjligt förenkla utformningen av dessa program. Att använda COM+-spårning i produktionssystem kan dessutom ha en betydligt lägre prestandapåverkan, vilket gör det mer lämpligt för realtidsövervakningsverktyg.
Hur COM+ Tracking samlar in data
När en COM+-serverprogramprocess startas registrerar COM+ processen med tracker-servern, en komponent i systemprogrammet. Komponenter i COM+-biblioteksprogram och -tjänster utan komponenter (SWC) stöder också spårning. När en bibliotekskomponent eller SWC-kontext skapas i en process registrerar COM+ processen med spårningsservern om den inte redan har registrerats.
COM+ uppdaterar statistik för en spårad process när vissa händelser inträffar i processen, till exempel skapandet av ett objekt eller slutförandet av ett metodanrop. Uppdaterade data skickas regelbundet till spårningsservern, då de blir tillgängliga för konsumenter. Tracker-servern ansvarar också för att beräkna några av de mått som används av COM+-programmets återanvändnings- och låsningsövervakningsfunktioner. Dessa data är också tillgängliga för konsumenter.
Spårningsdata organiseras enligt den process som genererade data. Data på nivån för enskilda COM+-program eller komponenter i processen är också tillgängliga för konsumenter som behöver den här informationen.
Händelser jämfört med pollning
COM+-spårning stöder två mekanismer för att en konsument ska kunna hämta spårningsdata från spårningsservern, en COM+-händelsebaserad prenumerationsmekanism och ett lokalt COM-servergränssnitt.
Program som måste meddelas regelbundet med uppdaterade spårningsdata kan registrera en prenumeration för IComTrackingInfoEvents händelsegränssnitt. Ungefär var tredje sekund anropar trackerservern varje prenumerants IComTrackingInfoEvents::OnNewTrackingInfo metod och skickar de senaste spårningsdata i form av ett samlingsobjekt. Det här objektet implementerar IComTrackingInfoCollection--gränssnittet, och prenumeranter kan navigera i den här samlingen för att hitta de data de är intresserade av.
Av olika skäl kan det vara mer meningsfullt för ett program att kontakta tracker-servern för data. Ett övervakningsverktyg kan till exempel behöva uppdateringar mycket mindre ofta än ett program som visar status i ett användargränssnitt. Dessutom kan ett program bara använda en liten del av de spårningsdata som är tillgängliga för systemet (till exempel kanske ett verktyg bara övervakar prestanda för instanser av ett enda COM+-program). Prenumerationsmodellen skickar spårningsdata till varje prenumerant för alla COM+-program i varje meddelande och det är prenumerantens ansvar att hitta de data som den vill ha. Slutligen är COM+-händelser en metod för att meddela händelser med bästa förmåga. Tillförlitliga meddelandeleveranstjänster tillhandahålls inte och det finns inget sätt för en prenumerant att identifiera att tracker-servern inte kunde skicka ett meddelande till den.
Ett program som behöver större kontroll över hämtningen av spårningsdata kan använda IGetAppTrackerData- gränssnitt för spårningsservern.