RPC トランスポートとしての MSMQ の使用
RPC サブシステムでは、同期モードと非同期モードでのトランスポートとしての MSMQ の使用がサポートされています。
同期モードでは、従来のリモート プロシージャ 呼び出しが使用されます。 これらの呼び出しでは、既知のエンドポイントとメッセージ キュー トランスポート (ncadg_mq) がトランスポート プロトコルとして使用されます。 同期モードでは、リモート プロシージャは [ in] パラメーターと [ out] パラメーターを持ち、標準の RPC セキュリティ サービスを使用できます。 RPC サブシステムは、[ out] パラメーターを含むリモート呼び出し用の応答キューを作成します。 同期モードは、クライアントがサーバーからデータを受信する必要があるアプリケーションに役立ちます。 このモードのメイン制限は、従来のリモート プロシージャ 呼び出しと同様に、クライアントとサーバーの両方が実行され、呼び出しの間は実行され続ける必要があるということです。
非同期モードでは、サーバー アプリケーションまたはサーバー コンピューターの状態に関係なく、クライアント アプリケーションがサーバーを呼び出してすぐに戻すことができます。 また、MSMQ 機能のサブセットを使用して、メッセージ キューと情報フローを管理することもできます。 RpcBindingSetOption 関数を使用すると、サービスの品質、呼び出しの優先順位、ジャーナリング、セキュリティ、およびサーバー プロセス キューの有効期間を制御できます。 RpcServerUseProtseqEpEx 関数を使用すると、キューの永続化、認証、暗号化など、サーバー プロセス キューの属性を指定できます。
同期 MSMQ と同様に、非同期 MSMQ を実装します。 既知のエンドポイントを使用し、 ncadg_mqするトランスポート プロトコルを定義する必要があります。 IDL ファイルで、 非同期メッセージ キューを使用する関数に message 属性を適用します。 メッセージ関数には [in] パラメーターのみを含めることができることに注意してください。