次の方法で共有


キューに登録されたコンポーネントのアーキテクチャ

COM+ キューに登録されたコンポーネント サービスは、コンポーネントを同期的 (リアルタイム) または非同期 (キューに登録) に呼び出すことができる環境を提供することにより、COM プログラミング モデルを強化します。 コンポーネントは、リアルタイムで使用されるか、キューに登録されたコンテキストで使用されるかを認識する必要はありません。

メッセージング アプリケーションは、プログラム間のメール トランザクションに似ています。 要求者は、サーバーにメッセージを送信します。メッセージがサーバーに到達すると、メッセージが処理されます。 メールと同様、メッセージング システムはネットワークの詳細を処理し、メッセージをクライアントからサーバーに確実に移動する必要があります。 キューに登録されたコンポーネント フレームワークでは、メッセージ キューがこれを行います。

COM+ キューに登録されたコンポーネント サービスは、以下の部分で構成されます。

  • レコーダー (クライアントまたは送信側用)
  • リスナー (サーバーまたは受信側用)
  • プレーヤー (サーバーまたは受信側用)

Diagram that shows the path from the client to the server: client, recorder, queue, listener, player, server.

レコーダー

キューに登録された一般的なコンポーネント シナリオでは、クライアントはキューに登録されたコンポーネントを呼び出します。 キューに登録されたコンポーネント レコーダーに対して呼び出しが行われた後、メッセージの一部としてサーバーにパッケージ化されて、キューに置かれます。 レコーダーは、クライアントのセキュリティ コンテキストをメッセージにマーシャリングし、クライアントのすべてのメソッド呼び出しを記録します。 サーバー コンポーネントのプロキシとしてのロールでは、レコーダーは COM+ カタログ内のキュー登録可能なインターフェイスからインターフェイスを選択します。

記録の表現は、サーバーに送信されるメッセージとしてメッセージ キューに送信されます。 キューに登録されたコンポーネントに、[必須] または [サポート対象] というトランザクション属性設定がある場合、メッセージ キューは、クライアント側のトランザクションがコミットされ、"メッセージ キュー" キューがトランザクションである場合のみ、メッセージの配信を受け入れます。これは通常、既定で確立されます。 トランザクション属性の設定が [新規が必要] の場合、メッセージ キューは、クライアント側のトランザクションが中止された場合でもメッセージを受け入れます。 トランザクションについて詳しくは、「トランザクション メッセージ キュー」をご覧ください。

リスナー

キューに登録されたコンポーネント リスナーは、キューからメッセージを取得し、キューに登録されたコンポーネント プレーヤーに渡します。

プレーヤー

プレーヤーは、クライアントのセキュリティ コンテキストのマーシャリングをサーバー側で解除し、サーバー コンポーネントを呼び出して、同じメソッド呼び出しを行います。 メソッド呼び出しは、クライアント コンポーネントが完了し、メソッド呼び出しを記録したトランザクションがコミットされるまで、プレーヤーによって再生されません。

メッセージ ムーバー

キューに登録されたコンポーネントのメッセージ ムーバーは、失敗したすべてのメッセージ キュー メッセージを 1 つのキューから別のキューに移動して再試行できるようにするユーティリティです。 メッセージ ムーバー ユーティリティは、VBScript で呼び出すことができるオートメーション オブジェクトです。詳しくは、「エラーの処理」をご覧ください。