Condividi tramite


Interfacce di monitoraggio di COM+ CRM

L'infrastruttura CRM fornisce un set di interfacce che possono essere usate per il monitoraggio dei CRL all'interno di un'applicazione server specifica. Per accedere alle interfacce di monitoraggio, un componente in esecuzione all'interno dell'applicazione server deve prima creare un addetto CRM specializzato, noto come addetto al recupero CRM.

Nell'uso normale dei CRM, le transazioni sono previste di breve durata e quindi i Lavoratori CRM e i Compensatori CRM esistono per un breve periodo di tempo, in genere solo pochi secondi al massimo. Le interfacce di monitoraggio sono quindi progettate per fornire uno snapshot dello stato dei CRL in esecuzione in un determinato momento. Se uno dei CRM presenta problemi, le interfacce di monitoraggio possono essere utilizzate per individuare il CRM problematico, per controllare i suoi record di log e interrompere la transazione, se necessario.

Di seguito sono riportate le tre interfacce di monitoraggio CRM e le descrizioni di come funzionano.

Interfaccia Descrizione
ICrmMonitor
Usando ICrmMonitor::GetClerks, è possibile ottenere uno snapshot del set corrente di impiegati CRM attivi all'interno dell'applicazione server. A questo scopo, è possibile individuare ed eseguire query su un particolare oggetto raccolta clerk CRM, incluso lo stato corrente della transazione e i record di log scritti da CRM.
Quando lo strumento di monitoraggio ha determinato quale clerk è di interesse, chiama ICrmMonitor::HoldClerk per ottenere l'ICrmMonitorLogRecords interfaccia su quel particolare clerk. A questo punto, lo strumento di monitoraggio contiene un riferimento a tale impiegato e, se la transazione viene completata, il clerk viene mantenuto in memoria e non viene rilasciato fino a quando non viene eseguito lo strumento di monitoraggio.
ICrmMonitorClerks
Usando questa interfaccia, l'oggetto raccolta degli impiegati può essere esplorato per ottenere informazioni sullo stato della raccolta degli impiegati al momento in cui sono state ottenute. Queste informazioni includono il numero di commessi, il ProgID del Compensatore CRM utilizzato dal commesso, la descrizione fornita al momento della registrazione del Compensatore CRM (utilizzando ICrmLogControl::RegisterCompensator), l'ID per l'unità di lavoro della transazione e l'ID dell'attività. I singoli impiegati sono identificati in modo univoco anche da un "CLSID dell'istanza clerk", che non è un CLSID COM nel solito senso del termine, ma semplicemente un GUID univoco che identifica questo particolare clerk per la sua durata.
ICrmMonitorLogRecords
Questa interfaccia può essere usata per eseguire query sullo stato corrente della transazione, per scoprire il numero di record di log scritti da questo addetto CRM e per ottenere i dati effettivi del record di log. I record di log vengono forniti dall'interfacciaICrmMonitorLogRecordsnello stesso formato originariamente scritto (usando ICrmLogControl). Inoltre, ICrmMonitorLogRecords può essere implementato facoltativamente per convertire i record di log in un formato visualizzabile in modo che possano essere presentati usando uno strumento di monitoraggio generico.
Poiché ICrmMonitorLogRecords viene implementato direttamente sul clerk CRM, è possibile QueryInterface per ICrmLogControl (implementato anche sul clerk CRM). Può quindi essere usato per interrompere direttamente la transazione se necessario (ICrmLogControl::ForceTransactionToAbort).

Concetti su COM+ gestore delle risorse di compensazione