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 clerk CRM specializzato denominato clerk di ripristino CRM.
Nell'uso normale delle macchine virtuali, le transazioni dovrebbero essere di breve durata e, di conseguenza, i lavoratori CRM e crm compensati 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 CRL presenta problemi, le interfacce di monitoraggio possono essere usate per zero in in CRM problematico, per controllare i 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 clek 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 un'interfaccia ICrmMonitorLogRecords 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 clerk può essere esplorato per informazioni sullo stato della raccolta clerk al momento in cui è stato ottenuto. Queste informazioni includono il numero di clerk, il ProgID dell'operatore CRM Compensat utilizzato dal clerk, la descrizione fornita al momento della registrazione del CRM Compensato (utilizzando ICrmLogControl::RegisterCompensator), l'ID unità di lavoro della transazione e l'ID 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 clerk CRM e per ottenere i dati effettivi del record di log. I record di log vengono forniti dall'interfaccia ICrmMonitorLogRecords nello 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 eseguire QueryInterface per ICrmLogControl (implementato anche nel clerk CRM). Può quindi essere usato per interrompere direttamente la transazione, se necessario (ICrmLogControl::ForceTransactionToAbort). |