次の方法で共有


COM+ でのイベントのフィルター処理

COM+ イベントには、どのイベントがどのサブスクライバーに到達するかを制御する 2 つの方法 (パブリッシャー フィルター処理パラメーター フィルター処理) があります。

パブリッシャー フィルター処理

パブリッシャー フィルター処理は、イベント クラス オブジェクトによるイベント メソッドの順序と発生を制御します。 パブリッシャー フィルター処理を使用すると、パブリッシャーは特定のイベントを受け取るサブスクライバーを決定できます。

パブリッシャー フィルター処理を効果的に使用する例は、証券取引所です。 ほとんどのサブスクライバーは、新しい株式がいつ追加されるのか知りたいと考えています。 しかし、これと同じサブスクライバーの多くは、それぞれの株価が変わるたびに知りたくはない可能性があります。 パブリッシャー フィルター処理には、この情報を必要とするサブスクライバーにのみイベントを効果的に配信するのに必要な細分性が備わっています。

インスタンス化されたイベント クラス オブジェクトでメソッドが呼び出されると、そのメソッドのパブリッシャー フィルター処理が収集されます。 このフィルターは、特定のサブスクライバーに対するイベント メソッドの軌道をイベント オブジェクトに強制します。 このフィルターにより、起動するサブスクリプションと、そのサブスクリプションを起動する順序が決まります。 たとえば、フィルターはサブスクリプションの一覧を読み取って、いくつかのアプリケーション条件に基づいて注文を作成し、その順序でサブスクライバーを呼び出すことができます。

パブリッシャー フィルターを作成する詳しい手順については、「パブリッシャー フィルターの作成」をご覧ください。

パラメーター フィルター処理

パブリッシャー フィルター処理とは対照的に、COM+ イベント サービスには、サブスクリプションと各イベント メソッドの呼び出しに対して、オプションのサブスクライバー パラメーター フィルター処理が用意されています。 パラメーター フィルター処理では、サブスクリプションの FilterCriteria プロパティがイベント メソッドのパラメーターに対して評価されます。 この種類のフィルター処理は、メソッドおよびサブスクリプション単位で使用され、サブスクライバー フィルター処理のレベルをイベント ソースで提供します。 フィルター条件文字列は、等値 (=、==、!、!=、~、~=、<>)、入れ子になったかっこ、論理キーワード ANDOR、または NOT を確認する関係演算子を認識します。

パラメーター フィルター処理は、パブリッシャー フィルター処理の後、および特定のサブスクリプションに対して標準イベント オブジェクトが発生したときに行われます。 パブリッシャー フィルター処理を使用する場合、パラメーター フィルター処理は、パブリッシャー フィルターが IFiringControl::FireSubscription を呼び出したときのみ行われます。 このため、パブリッシャー フィルター処理とパラメーター フィルター処理は同時に構成できますが、パブリッシャー フィルター処理が優先されます。

COM+ でのイベントの発行と配信

サブスクリプション

COM+ イベント クラス オブジェクト

COM+ キューに登録されたコンポーネントでの COM+ イベントの使用