Informations internes sur l’état RPC
Cette section fournit des détails sur la structure interne des informations d’état collectées par l’exécution RPC.
Toutes les informations d’état d’exécution RPC sont contenues dans des cellules. Une cellule est la plus petite unité d’informations qui peut être consultée et mise à jour individuellement.
Chaque objet clé dans le 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 dont les Run-Time RPC peuvent conserver des informations sont les points de terminaison, les threads, les objets de connexion, les objets SCALL (Server Call) et les objets CCALL (Client Call).
Lorsqu’un serveur RPC est en cours d’exécution, le Run-Time RPC écoute sur un ensemble de points de terminaison à l’aide d’un ou de plusieurs threads de travail. Chaque fois que des données sont transmises au serveur, un thread récupère les données et détermine la demande entrante. Si la demande est de créer une connexion, un objet Connection est créé et cet objet traite ensuite 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 Appel client (CCALL). Cet objet Appel de serveur gère ensuite cet appel particulier.
Lorsqu’un client RPC est en cours d’exécution, l'Run-Time RPC crée un objet Appel client chaque fois qu’un appel est effectué. Cet objet Appel client contient des informations sur cet appel particulier.
Cellules de point de terminaison
Du point de vue de l’exécution RPC, un point de terminaison est un point d’entrée par 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.
Statut
Valeur status : allouée, active ou inactive. La plupart des points de terminaison sont actifs. Un point de terminaison a alloué status lorsque le processus de création a démarré, 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 thread
Les threads de serveur sont des threads de travail (threads Win32 standard utilisables par RPC).
Les champs d’une cellule de thread sont les suivants :
Statut
Valeur status : traitement, réparti, alloué ou inactif. Un thread de traitement est un thread qui se trouve dans le Run-Time et traite des informations. Un thread distribué a déjà distribué (appelé) à la routine de gestionnaire fournie par le serveur (généralement appelée simplement routine 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) à laquelle les informations ont été mises à jour pour la dernière fois.
TID
ID de thread de ce thread. Cela est utile lorsque vous essayez de mettre en corrélation avec la liste de threads dans le débogueur.
Cellules de l’objet de connexion
Les champs d’une cellule d’objet de connexion sont les suivants :
Drapeaux
Les valeurs d’indicateur incluent le service d’authentification, le niveau d’authentification et le service d’authentificationexclusifs/.
LastTransmitFragmentSize
Taille du dernier fragment transmis via la connexion.
Terminaison
ID de cellule du point de terminaison à partir duquel cette connexion a été récupérée.
LastSendTime
Heure à laquelle les données ont été envoyées pour la dernière fois sur une connexion.
LastReceiveTime
Heure de la dernière réception des données sur une connexion.
Cellules de l’objet d’appel de serveur
Les champs d’une cellule d’objet Appel de serveur (SCALL) sont les suivants :
Statut
Valeur status : allouée, active ou distribuée. 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 distribué, la routine du gestionnaire (routine serveur) a été appelée et n’a pas encore été retournée.
ProcNum
Numéro de procédure (numéro d’opération, dans les fichiers de capture netmon) de cet appel. Le Run-Time RPC identifie les routines individuelles d’une interface en les numérolant par position dans le fichier IDL. La première routine de l’interface sera le numéro zéro, le deuxième numéro un, et ainsi de suite.
InterfaceUUIDStart
Premier DWORD de l’UUID de l’interface.
ServicingTID
ID de cellule du thread qui effectue la maintenance de cet appel. Si l’appel n’est pas actif ou distribué, il contient des informations obsolètes.
CallFlags
Ces valeurs d’indicateur indiquent s’il s’agit de 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) de la dernière mise à jour des informations sur l’état de l’objet d’appel.
PID
ID de 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 d’appel client
Un objet Appel client (CCALL) est divisé en deux cellules, car les informations relatives à un appel client sont trop volumineuses pour tenir dans une cellule. La première cellule est appelée Informations sur l’appel du client et la seconde est appelée Informations sur la 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 des clients ne sont pas conservées, sauf si vous collectez des informations sur l’état complet. Il existe une exception à cette règle : les informations sur les appels clients effectués dans un appel de serveur sont conservées même lorsque seules les informations sur l’état du serveur sont collectées. Cela vous permet de suivre les appels couvrant plusieurs tronçons.
Les champs de la cellule Informations sur l’appel du 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 Run-Time RPC identifie les routines individuelles d’une interface en les numérolant par position dans le fichier IDL. La première routine de l’interface sera le numéro zéro, le deuxième numéro un, 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é.
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 sur la cible d’appel sont les suivants :
ProtocolSequence
Séquence de protocole pour cet appel.
LastUpdateTime
Heure (en millisecondes après le démarrage) à laquelle 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é.