Partager via


Internes des informations d’état RPC

Cette section fournit des détails sur la structure interne des informations d’état collectées par l'environnement d'exécution RPC.

Toutes les informations d’état d’exécution RPC sont contenues dans les cellules. Une cellule est la plus petite unité d’informations qui peut être affichée et mise à jour individuellement.

Chaque objet clé du Run-Time RPC conserve une ou plusieurs cellules d’informations sur son état. Chaque cellule a un ID de cellule. Lorsqu’un objet fait référence à un autre objet, il le fait en spécifiant l’ID de cellule de cet objet. Les objets clés sur lesquels le RPC Run-Time peut conserver des informations sont les points de terminaison, les threads, les objets de connexion, les objets d'appel serveur (SCALL) et les objets d'appel client (CCALL).

Lorsqu’un serveur RPC est en cours d'exécution, le RPC Run-Time écoute un ensemble de points de terminaison à l'aide d'un ou plusieurs threads de travail. Chaque fois que les données sont transmises au serveur, un thread récupère les données et détermine ce que la requête entrante est. Si la demande consiste à créer une connexion, un objet Connection est créé, et cet objet services tous les appels sur la connexion. Lorsqu’un appel RPC est effectué sur la connexion, l’objet Connection instancie un objet SCALL (Server Call) correspondant à l’objet CCALL (Client Call). Cet objet d’appel de serveur gère ensuite cet appel particulier.

Lorsqu'un client RPC est en cours d'exécution, le Run-Time RPC crée un objet Client Call à chaque fois qu'un appel est effectué. Cet objet Appel client contient des informations sur cet appel particulier.

Cellules du point de terminaison

Du point de vue de l’exécution RPC, un point de terminaison est un point d’entrée via lequel le serveur particulier peut être contacté. Le point de terminaison est toujours associé à un transport RPC donné. Les informations d’état du point de terminaison sont utilisées pour associer un appel client à un processus particulier sur le serveur.

Les champs d’une cellule de point de terminaison sont les suivants :

ProtseqType
Séquence de protocole pour ce point de terminaison.

Status
Valeur de l'état : attribué, actif ou inactif. La plupart des points de terminaison sont actifs. Un point de terminaison a un statut alloué lorsque le processus de création a commencé, mais n'est pas encore terminé. Un point de terminaison est inactif s’il n’est plus utilisé (par exemple, lorsqu’un protocole a été désinstallé).

EndpointName
Les 28 premiers caractères du nom du point de terminaison.

Cellules de threading

Les threads de serveur sont des threads de travail (threads Win32 standard à utiliser par RPC).

Les champs d’une cellule de thread sont les suivants :

Status
Valeur d'état : en traitement, expédié, attribuéou inactif. Un thread de traitement est un thread qui se trouve dans le Run-Time et qui traite des informations. Un thread distribué a déjà distribué (appelé) la routine de gestion fournie par le serveur (généralement appelée routine du serveur). Un thread alloué a été mis en cache. Un thread inactif est disponible pour les demandes de service.

LastUpdateTime
Heure (en millisecondes après le démarrage) de la dernière mise à jour des informations.

TID
L'ID de ce threading. Cela est utile lorsque vous essayez de mettre en corrélation la liste des threads dans le débogueur.

Cellules de l'objet de connexion

Les champs d’une cellule d’objet de connexion sont les suivants :

Indicateurs
Les valeurs des indicateurs comprennent l'exclusivité/, la non-exclusivité, le niveau d'authentification et le service d'authentification.

LastTransmitFragmentSize
Taille du dernier fragment transmis via la connexion.

point de terminaison
L'ID de la cellule du point de terminaison à partir duquel cette connexion a été établie.

LastSendTime
La dernière fois que des données ont été envoyées sur une connexion.

LastReceiveTime
La dernière fois que des données ont été reçues sur une connexion.

Cellules d'objets d'appel du serveur

Les champs d’une cellule d’objet SCALL (Server Call) sont les suivants :

Status
La valeur de l'état : attribué, actif ou réparti. Un appel alloué est inactif et mis en cache. Lorsqu’un appel est actif, le Run-Time RPC traite les informations relatives à cet appel. Lorsqu'un appel est envoyé, la routine du gestionnaire (routine du serveur) a été appelée et n'est pas encore retournée.

ProcNum
Numéro de procédure (numéro d’opération, dans les fichiers de capture netmon) de cet appel. L'RPC Run-Time identifie les routines individuelles depuis une interface en les numérotant par position dans le fichier IDL. La première routine de l’interface sera numéro zéro, la deuxième numéro 1, et ainsi de suite.

InterfaceUUIDStart
Premier DWORD de l’interface UUID.

ServicingTID
L'ID de la cellule du threading qui gère cet appel. Si l'appel n'est pas actif ou réparti, il s'agit d'informations périmées.

CallFlags
Ces valeurs d’indicateur indiquent si c’est l’appel mis en cache dans une connexion exclusive, s’il s’agit d’un appel asynchrone, s’il s’agit d’un appel de canal et s’il s’agit d’un appel LRPC ou OSF.

LastUpdateTime
Heure (en millisecondes après le démarrage) lorsque les informations d’état de l’objet d’appel ont été mises à jour pour la dernière fois.

PID
L'ID du processus de l'appelant. Valide uniquement pour les appels LRPC.

TID
ID de thread de l’appelant. Valide uniquement pour les appels LRPC.

Cellules de l'objet de l'appel du client

Un objet CCALL (Client Call) est divisé en deux cellules, car les informations relatives à un appel client sont trop volumineuses pour s’adapter à une cellule. La première cellule est appelée informations d’appel client, et la seconde est appelée informations de cible d’appel. La plupart des outils affichent les informations ensemble. Vous n’avez donc pas besoin de les distinguer.

Les informations sur les appels clients ne sont pas conservées, sauf si vous collectez des informations d’état complètes. Il existe une exception à cette règle : les informations sur les appels clients effectués au sein d’un appel de serveur sont conservées même si seules les informations d’état du serveur sont collectées. Cela vous permet de suivre les appels couvrant plusieurs tronçons.

Les champs de la cellule Informations d’appel client sont les suivants :

ProcNum
Numéro de procédure (numéro d’opération, dans les fichiers de capture netmon) de la méthode appelée. Le RPC Run-Time identifie les routines individuelles à partir d’une interface en les numérotant par position dans le fichier IDL. La première routine de l’interface sera numéro zéro, la deuxième numéro 1, et ainsi de suite.

ServicingThread
ID de cellule du thread sur lequel cet appel est effectué.

IfStart
Premier DWORD de l’UUID d’interface sur lequel l’appel est effectué.

point de terminaison
Les 12 premiers caractères du point de terminaison sur le serveur auquel l’appel a été effectué.

Les champs de la cellule Informations de la cible d’appel sont les suivants :

ProtocolSequence
Séquence de protocole pour cet appel.

LastUpdateTime
Heure (en millisecondes après le démarrage) lorsque les informations sur l’appel client ou la cible d’appel ont été mises à jour.

TargetServer
Les 24 premiers caractères du nom du serveur auquel l’appel est effectué.