MSMQ とも呼ばれるメッセージ キューは、Microsoft Windows 用の分散メッセージング アプリケーションを作成するためのメッセージ インフラストラクチャおよび開発ツールです。メッセージ キュー用に開発されたアプリケーションによって、一時保管場所であるキューにメッセージが送信されます。メッセージは、条件が合えば一時保管場所から最終的な宛先に渡されます。このようなアプリケーションでは、異種ネットワークを対象とした通信が可能で、一時的に相互接続できない状態にあるコンピューター間でメッセージを送信できます。メッセージ キューには、次のような利点があります。
-
メッセージの確実な配信
-
効果的なルーティング
-
セキュリティの向上
-
トランザクション内のメッセージ送信のサポート
-
優先順位に基づいたメッセージ通信
このような機能を備えたソフトウェア製品は、業界では通常次のように呼ばれます。
-
メッセージ キュー ソフトウェア
-
ストア アンド フォワード ソフトウェア
-
メッセージ指向ミドルウェア
エンド ユーザーは、メッセージ キューを使用することにより、オフラインになる可能性があるネットワーク間やコンピューター間で、ネットワークやコンピューターの現在の状態に関係なく通信することができます。システム管理者は、メッセージ キューを使用することにより、コンピューターとメッセージ キューから構成される大規模で複雑なネットワークを効率的に管理できます。
このトピックでは、メッセージ キューで利用できる機能について説明します。
メッセージ キュー サーバー
この機能はメッセージ キューのコア コンポーネントであり、これによって基本的なメッセージ キューの機能を実行できます。メッセージ キュー サーバー機能の詳細については、メッセージ キューに関するページ (英語の可能性あり) (
ディレクトリ サービス統合
キューのプロパティを Active Directory に公開したり、Active Directory に登録された証明書を使用して既定の方式でメッセージの認証と暗号化を行ったり、Windows サイト間でメッセージをルーティングできるようにするための機能です。ディレクトリ サービス統合機能の詳細については、ディレクトリ サービス統合の機能に関するページ (英語の可能性あり) (
メッセージ キュー トリガー
特定のキュー内の着信メッセージに対して定義されたフィルターに応じて、COM コンポーネントまたは実行可能ファイルを起動できるようにする機能です。メッセージ キュー トリガー機能の詳細については、トリガーの概要に関するページ (英語の可能性あり) (
HTTP サポート
HTTP 経由でメッセージを送受信するための機能です。HTTP サポート機能の詳細については、インターネット メッセージに関するページ (英語の可能性あり) (
マルチキャスト サポート
マルチキャスト IP アドレスへのマルチキャスト メッセージをキューに挿入し送信できるようにする機能です。マルチキャスト サポート機能の詳細については、IP マルチキャストに関するページ (英語の可能性あり) (
ルーティング サービス
異なるサイト間およびサイト内でメッセージをルーティングする機能です。ルーティング サービス機能の詳細については、メッセージ キューのルーティングに関するページ (英語の可能性あり) (
メッセージ キュー DCOM プロキシ
MSMQ DCOM API をリモートのメッセージ キュー サーバーに接続できるようにする機能です。
サブキュー
この機能を使用することにより、物理キューを新たに作成しなくてもキュー内のメッセージを論理的にグループ化できるようになります。サブキューは、暗黙的に作成されるローカル キューで、物理キューを論理的に分割したものです。アプリケーションは、サブキューを使ってメッセージをグループ化できます。
メッセージの移動
メッセージを移動するには、次の 3 とおりの方法があります。
-
[メッセージの移動] ダイアログ ボックスを使用する。
-
カット アンド ペースト操作を実行する。
-
ドラッグ アンド ドロップ操作を実行する。
同じメイン キューのサブキュー間で、またはメイン キューからそのサブキューにメッセージを移動できます。メッセージをメイン キューから別のメイン キューのサブキューに移動したり、2 つのメイン キュー間で移動したり、異なるメイン キューの 2 つのサブキュー間で移動したりすることはできません。
メッセージは、移動元のキューから移動先のキューにそのまま移動されます。現在の移動の回数を除き、メッセージのプロパティは変更されません。
アプリケーションごとの配信不能キュー
メッセージ キュー 4.0 にはアプリケーションごとの配信不能キューが導入されたため、各アプリケーションは固有の配信不能キューを使用できます。アプリケーションが固有の配信不能キューを要求するには、PROPID_M_DEADLETTER_QUEUE プロパティをメッセージの一部として使用します。これにより、システム トランザクション配信不能キューではなく PROPID_M_DEADLETTER_QUEUE プロパティで指定されたキューにメッセージが送信されます。
PROPID_M_DEADLETTER_QUEUE には、トランザクション キューの任意の有効なパスを設定できます。トランザクション キューは、否定受信確認 (NACK) メッセージをキューに移動するキュー マネージャーに対してローカルである必要があります。有効なパスは、キューのパス名に関するページ (英語の可能性あり) (
トランザクションのリモート受信
トランザクションのリモート受信とは、リモート キューからのメッセージのトランザクション受信のことです。トランザクションのリモート受信を必要とするシナリオがあります。たとえば、リモート セントラル キューからの作業指示を複数のアプリケーション サーバーのファームで処理する必要がある場合にトランザクションのリモート受信を使用すると、メッセージの処理をサーバー ファーム全体に負荷分散できます。
メッセージ キューの多数のキューを処理する機能
Windows 7 および Windows Server 2008 R2 と共にリリースされたメッセージ キュー 5.0 には、以下の新機能が導入されています。
メッセージ キュー 5.0 では、メッセージ キュー 4.0 よりも非常に多数のキューを処理する機能があります。メッセージ キュー 4.0 でも、作成できるキューの数に特定の制限が設けられていたわけではありませんが、数千単位でキューが作成された場合にパフォーマンスに悪い影響が見られました。特に、非常に多数のキューをメモリに読み込むときに、使用されているキュー参照アルゴリズムが原因で、メッセージ キュー 4.0 サービスの起動時間が大幅に長くなっていました。メッセージ キュー 5.0 では、起動時に使用されるキュー参照アルゴリズムが最適化されており、非常に多数のキューをシステムでホストする場合のメッセージ キューの起動パフォーマンスが大幅に向上しています。
その他の参照情報
メッセージ キュー機能に関するページ (英語の可能性あり) (