次の方法で共有


RPC トランスポートとしての MSMQ の使用

RPC サブシステムは、同期モードと非同期モードでのトランスポートとしての MSMQ の使用をサポートしています。

同期モードでは、従来のリモート プロシージャ コールが使用されます。 これらの呼び出しでは、既知のエンドポイントとメッセージ キュー トランスポート (ncadg_mq) がトランスポート プロトコルとして使用されます。 同期モードでは、リモート プロシージャは [] パラメーターと [] パラメーターを持つ場合があり、標準の RPC セキュリティ サービスを使用できます。 RPC サブシステムは、[out] パラメーターを含むリモート呼び出し用の応答キューを作成します。 同期モードは、クライアントがサーバーからデータを受信する必要があるアプリケーションに役立ちます。 このモードの主な制限は、従来のリモート プロシージャ 呼び出しと同様に、クライアントとサーバーの両方が実行され、呼び出しの間実行されたままである必要があるということです。

非同期モードでは、サーバー アプリケーションまたはサーバー コンピューターの状態に関係なく、クライアント アプリケーションがサーバーを呼び出してすぐに戻ることができます。 また、MSMQ 機能のサブセットを使用して、メッセージ キューと情報フローを管理することもできます。 RpcBindingSetOption 関数を使用すると、サービスの品質、呼び出しの優先順位、ジャーナリング、セキュリティ、およびサーバー プロセス キューの有効期間を制御できます。 RpcServerUseProtseqEpEx 関数を使用すると、キューの永続化、認証、暗号化など、サーバー プロセス キューの属性を指定できます。

非同期 MSMQ は、同期 MSMQ と同様に実装します。 既知のエンドポイントを使用し、ncadg_mqするトランスポート プロトコルを定義する必要があります。 IDL ファイルで、非同期メッセージ キューを使用する関数に メッセージ 属性を適用します。 メッセージ関数には [in] パラメーターのみを指定できることに注意してください。