Interfaces de supervision COM+ CRM

L’infrastructure CRM fournit un ensemble d’interfaces qui peuvent être utilisées pour surveiller les CRM au sein d’une application serveur particulière. Pour accéder aux interfaces de supervision, un composant en cours d’exécution dans l’application serveur doit d’abord créer un commis CRM spécialisé appelé commis à la récupération CRM.

Dans l’utilisation normale des CRM, les transactions sont censées être de courte durée, et par conséquent, les travailleurs CRM et les compensateurs CRM existent pendant une courte période, généralement seulement quelques secondes au maximum. Les interfaces de supervision sont donc conçues pour donner une instantané de l’état des crMs en cours d’exécution à un moment donné. Si l’un des CRM rencontre des problèmes, les interfaces de supervision peuvent être utilisées pour zéro dans le CRM problématique, pour inspecter ses enregistrements de journal et pour abandonner sa transaction si nécessaire.

Voici les trois interfaces de supervision CRM et les descriptions de leur fonctionnement.

Interface Description
ICrmMonitor
À l’aide de ICrmMonitor::GetClerks, vous pouvez obtenir une instantané de l’ensemble actuel de commis CRM actifs au sein de l’application serveur. À partir de là, un objet de collection de commis CRM particulier peut être localisé et interrogé, y compris l’état actuel de sa transaction et les enregistrements de journal écrits par le CRM.
Une fois que l’outil de surveillance a déterminé quel greffier est d’intérêt, il appelle ICrmMonitor::HoldClerk pour obtenir une interface ICrmMonitorLogRecords sur ce commis particulier. À ce stade, l’outil de surveillance contient une référence à ce greffier et, si la transaction se termine, le greffier est conservé en mémoire et n’est pas libéré tant que l’outil de surveillance n’est pas terminé.
ICrmMonitorClerks
À l’aide de cette interface, l’objet de collection clerk peut être parcouru pour obtenir des informations sur l’état de la collection de commis au moment où elle a été obtenue. Ces informations incluent le nombre de commis, le ProgID du compensateur CRM utilisé par le greffier, la description fournie au moment de l’inscription du compensateur CRM (à l’aide de ICrmLogControl::RegisterCompensator), l’ID d’unité de travail de transaction et l’ID d’activité. Les commis individuels sont également identifiés de manière unique par un « greffier instance CLSID », qui n’est pas un CLSID COM au sens habituel du terme, mais simplement un GUID unique qui identifie ce greffier particulier pour sa durée de vie.
ICrmMonitorLogRecords
Cette interface peut être utilisée pour interroger l’état actuel de la transaction, pour déterminer le nombre d’enregistrements de journal écrits par ce commis CRM et pour obtenir les données d’enregistrement de journal réelles. Les enregistrements de journal sont fournis à partir de l’interface ICrmMonitorLogRecords dans le même format qu’ils ont été écrits à l’origine (à l’aide d’ICrmLogControl). En outre, les enregistrements ICrmMonitorLogRecord peuvent être éventuellement implémentés pour convertir les enregistrements de journal au format visible afin qu’ils puissent être présentés à l’aide d’un outil de supervision générique.
Étant donné que ICrmMonitorLogRecords est implémenté directement sur le commis CRM, vous pouvez QueryInterface pour ICrmLogControl (également implémenté sur le commis CRM). Cela peut ensuite être utilisé pour annuler directement la transaction si nécessaire (ICrmLogControl::ForceTransactionToAbort).

Com+ Compensation Resource Manager Concepts