Interne RPC-statusinformatie
In deze sectie vindt u informatie over de interne structuur van de statusgegevens die zijn verzameld door de RPC-runtime.
Alle RPC-runtimestatusgegevens zijn opgenomen in cellen. Een cel is de kleinste informatie-eenheid die afzonderlijk kan worden bekeken en bijgewerkt.
Elk sleutelobject in de RPC-Run-Time onderhoudt een of meer cellen met informatie over de status. Elke cel heeft een cel-id. Wanneer een object verwijst naar een ander object, doet dit door de cel-id van dat object op te geven. De belangrijkste objecten die RPC Run-Time kan onderhouden, zijn eindpunten, threads, verbindingsobjecten, Server Call (SCALL)-objecten en Client Call (CCALL)-objecten.
Wanneer een RPC-serverwordt uitgevoerd, luistert de RPC-Run-Time naar een set eindpunten met behulp van een of meer werkrolthreads. Wanneer gegevens naar de server worden verzonden, worden de gegevens opgehaald door een thread en wordt bepaald wat de binnenkomende aanvraag is. Als de aanvraag is om een verbinding te maken, wordt er een verbindingsobject gemaakt, en dit object voert dan alle aanroepen voor de verbinding uit. Wanneer er een RPC-aanroep wordt uitgevoerd op de verbinding, instantieert het verbindingsobject een SCALL-object (serveraanroep) dat overeenkomt met het CCALL-object (clientaanroep). Dit serveroproepobject verwerkt deze specifieke aanroep.
Wanneer een RPC-clientwordt uitgevoerd, maakt de RPC-Run-Time telkens wanneer een aanroep wordt gedaan een clientaanroepobject. Dit clientoproepobject bevat informatie over deze specifieke aanroep.
Eindpuntcellen
Vanuit het oogpunt van de RPC-runtime is een eindpunt een toegangspunt waarmee verbinding kan worden gemaakt met de specifieke server. Het eindpunt is altijd gekoppeld aan een bepaald RPC-transport. De eindpuntstatusgegevens worden gebruikt om een clientoproep te koppelen aan een bepaald proces op de server.
De velden in een eindpuntcel zijn:
ProtseqType
De protocolreeks voor dit eindpunt.
Status
De statuswaarde: toegewezen, actieveof inactieve. De meeste eindpunten zijn actief. Een eindpunt wordt status toegewezen wanneer het aanmaakproces is gestart, maar nog niet voltooid is. Een eindpunt is inactief als het niet meer wordt gebruikt (bijvoorbeeld wanneer een protocol is gedeïnstalleerd).
EndpointName
De eerste 28 tekens van de eindpuntnaam.
Threadcellen
Server-threads zijn werkthreads (standaard Win32-threads voor gebruik door RPC).
De velden in een threadcel zijn:
Status
De statuswaarde: verwerking, verzonden, toegewezenof inactief. Een verwerking thread bevindt zich in de Run-Time en verwerkt informatie. Een gestarte thread heeft al aangeroepen (verzonden) naar de door de server doorgeleverde beheerderroutine (meestal alleen de serverroutinegenoemd). Er is een toegewezen thread opgeslagen in de cache. Een niet-actieve thread is beschikbaar voor serviceaanvragen.
LastUpdateTime
De tijd (in milliseconden na het opstarten) toen de informatie voor het laatst werd bijgewerkt.
TID
De thread-id van deze thread. Dit is handig wanneer u probeert te correleren met de threadlijst in het foutopsporingsprogramma.
Verbindingsobjectcellen
De velden in een verbindingsobjectcel zijn:
vlaggen
Vlagwaarden omvatten exclusief/niet-exclusief, authenticatieniveau, en authenticatieservice.
LastTransmitFragmentSize
De grootte van het laatste fragment dat via de verbinding wordt verzonden.
Eindpunt
De cel-id van het eindpunt waaruit deze verbinding is opgehaald.
LastSendTime
De laatste keer dat gegevens zijn verzonden via een verbinding.
LastReceiveTime
De laatste keer dat gegevens zijn ontvangen op een verbinding.
serveroproepobjectcellen
De velden in een SCALL-objectcel (Server Call) zijn:
Status
De statuswaarde: toegewezen, actief, of verzonden. Een toegewezen-aanroep is inactief en in de cache opgeslagen. Wanneer een oproep actiefis, verwerkt de RPC Run-Time informatie gerelateerd aan deze oproep. Wanneer een oproep wordt verzonden, is de managerroutine (serverroutine) aangeroepen en is deze nog niet geretourneerd.
ProcNum
Het procedurenummer (bewerkingsnummer, in netmon capture-bestanden) van deze aanroep. De RPC-Run-Time identificeert afzonderlijke routines vanuit een interface door ze te nummeren op positie in het IDL-bestand. De eerste routine in de interface is het getal nul, de tweede nummer één, enzovoort.
InterfaceUUIDStart
De eerste DWORD van de UUID van de interface.
ServicingTID
De cel-ID van de thread die deze aanroep verwerkt. Als de oproep niet actief of verzondenis, bevat dit verouderde informatie.
CallFlags
Deze vlagwaarden geven aan of dit de aanroep in de cache is in een exclusieve verbinding, of dit een asynchrone aanroep is, of dit een pipe-aanroep is en of dit een LRPC- of OSF-aanroep is.
LastUpdateTime
De tijd (in milliseconden na het opstarten) toen de statusinformatie van het aanroepobject voor het laatst werd bijgewerkt.
PID
De proces-id van de beller. Alleen geldig voor LRPC-aanroepen.
TID
De thread-id van de beller. Alleen geldig voor LRPC-aanroepen.
Objectcellen van clientoproep
Een CCALL-object (Client Call) wordt onderverdeeld in twee cellen, omdat de informatie over een clientaanroep te groot is om in één cel te passen. De eerste cel wordt cliëntoproepinformatiegenoemd en de tweede wordt doeloproepinformatiegenoemd. In de meeste hulpprogramma's worden de gegevens samen weergegeven, zodat u er geen onderscheid tussen hoeft te maken.
Informatie over clientoproepen wordt niet onderhouden, tenzij u volledige statusinformatie verzamelt. Er is één uitzondering op deze regel: informatie over clientoproepen binnen een serveroproep wordt gehandhaafd, zelfs wanneer alleen serverstatusgegevens worden verzameld. Hiermee kunt u aanroepen traceren die meerdere hops omvatten.
De velden in de cel Clientoproepinformatie zijn:
ProcNum
Het procedurenummer (bewerkingsnummer, in netmon capture-bestanden) van de methode die wordt aangeroepen. De RPC-Run-Time identificeert afzonderlijke routines vanuit een interface door ze te nummeren op positie in het IDL-bestand. De eerste routine in de interface is het getal nul, de tweede nummer één, enzovoort.
ServicingThread
De cel-id van de thread waarop deze aanroep wordt gedaan.
IfStart
Het eerste DWORD van de interface-UUID waarop de oproep wordt uitgevoerd.
Eindpunt
De eerste 12 tekens van het eindpunt op de server waarop de aanroep is uitgevoerd.
De velden in de cel met doelinformatie van het gesprek zijn:
ProtocolSequence
De protocolreeks voor deze aanroep.
LaatsteBijwerktijd
De tijd (in milliseconden na het opstarten) wanneer de informatie over de clientaanroep of het oproepdoel is bijgewerkt.
TargetServer
De eerste 24 tekens van de naam van de server waarop de aanroep wordt gedaan.