COM+ CRM 監視インターフェイス
CRM インフラストラクチャには、特定のサーバー アプリケーション内の CRM の監視に使用できる一連のインターフェイスが用意されています。 監視インターフェイスにアクセスするには、サーバー アプリケーション内で実行されているコンポーネントで、最初に CRM 復旧クラークと呼ばれる専用の CRM クラークを作成する必要があります。
CRM の通常の使用では、トランザクションは短時間であることが予想されるため、CRM ワーカーと CRM コンペンセーターが存在するのは短時間 (通常は最大で数秒間) です。 したがって、監視インターフェイスは、特定の時点で実行中の CRM の状態のスナップショットを提供するように設計されています。 いずれかの CRM で問題が発生している場合は、監視インタフェースを使用して、問題のある CRM を特定し、そのログ記録を検査して、必要であればそのトランザクションを中止することができます。
3 つの CRM 監視インターフェイスとその動作の説明を次に示します。
Interface | 説明 |
---|---|
ICrmMonitor |
ICrmMonitor::GetClerks を使用すると、サーバー アプリケーション内のアクティブな CRM クラークの現在のセットのスナップショットを取得できます。 ここから、対象の特定の CRM クラーク コレクション オブジェクトを特定し、トランザクションの現在の状態や CRM によって書き込まれたログ レコードなどを、照会することができます。 監視ツールが対象となるクラークを特定すると、ICrmMonitor::HoldClerk を呼び出して、その特定のクラークで ICrmMonitorLogRecords インターフェイスを取得します。 この時点で、監視ツールはそのクラークへの参照を保持しており、トランザクションが完了すると、クラークはメモリに保持され、監視ツールが完了するまで解放されません。 |
ICrmMonitorClerks |
このインターフェイスを使用すると、クラーク コレクション オブジェクトを参照して、取得された時点のクラーク コレクションの状態に関する情報を参照できます。 この情報には、クラークの数、クラークが使用する CRM コンペンセータの ProgID、CRM コンペンセータの登録時に提供された説明 (ICrmLogControl::RegisterCompensator を使用)、トランザクションの作業単位 ID、およびアクティビティ ID が含まれます。 また、個々のクラークは、"クラーク インスタンス CLSID" によって一意に識別されます。これは、通常使われる用語の COM CLSID ではなく、この特定のクラークを有効期間中識別する一意の GUID です。 |
ICrmMonitorLogRecords |
このインターフェイスを使用すると、トランザクションの現在の状態を照会したり、この CRM クラークが書き込むログ レコードの数を確認したり、実際のログ レコード データを取得したりできます。 ログ レコードは、(ICrmLogControl を使用して) 最初に書き込まれたのと同じ形式で ICrmMonitorLogRecords インターフェイスから提供されます。 さらに、汎用監視ツールを使用して表示できるように、ログ レコードを表示可能な形式に変換するために、必要に応じて ICrmMonitorLogRecords を実装できます。 ICrmMonitorLogRecords は CRM クラークに直接実装されるため、ICrmLogControl (これも CRM クラークに実装されています) の QueryInterface を使用できます。 これを使用して、必要に応じてトランザクションを直接中止することができます (ICrmLogControl::ForceTransactionToAbort)。 |