メッセージ キューでは、キューとはさまざまな種類のメッセージを一時的に保管する場所のことです。キューは、次のいずれかによって作成されます。

  • アプリケーション

  • 管理者

  • メッセージ キュー

アプリケーションまたは管理者が作成したキューは、アプリケーション キューと呼ばれます。メッセージ キューが作成したキューは、システム キューと呼ばれます。

アプリケーション キュー

メッセージ キューには、次の種類のアプリケーション キューが含まれます。

パブリック キューと専用キュー

パブリック キュー

ドメイン環境では、パブリック キューとは Active Directory ドメイン サービス (AD DS) で公開されるキューであり、したがってフォレスト全体にレプリケートされます。これらのキューでは、キューのプロパティだけがレプリケートされ、キュー自体やキューの内容はレプリケートされません。ユーザーが目的のキュー オブジェクトにアクセスするための十分なアクセス許可を持っていれば、パブリック キューに関する情報はフォレスト内のどのコンピューターからもアクセスされる可能性があります。一般に、AD DS へのアクセス権と特定のパブリック キューに対する "メッセージの送信" アクセス許可を持つフォレスト内のユーザーは、そのキューにメッセージを送信できます。このアクセス許可は、キューを作成したときに既定で付与されます。パブリック キューからメッセージを読み取るには、そのキューに対する "メッセージのピーク" アクセス許可と "メッセージの受信" アクセス許可が必要です。

AD DS 環境では、パブリック キューを定義することによって、キューがディレクトリ サービスに登録され、その登録内容がバックアップされます。パブリック キューは永続的であり、他のアプリケーションから使用可能です。

専用キュー

専用キューは、AD DS で公開されないキューです。専用キューが存在するローカル コンピューターでのみ表示されます。専用キューには、ディレクトリ サービスによるオーバーヘッドがないという利点があり、その結果として次のような特長があります。

  • すばやく作成できる

  • アクセス時の遅延がない

  • レプリケーションによるオーバーヘッドがない

ワークグループ環境では、専用キューのみが使用可能です。

ローカル コンピューター上のメッセージ キュー アプリケーションが専用キューにアクセスするのに必要なのは、キューのパスだけです。リモート コンピューター上のメッセージ キュー アプリケーションがそのようなキューにアクセスするには、直接または専用の形式名が必要です。キューからメッセージを読み取るには、リモートのメッセージ キュー アプリケーションにそのキューの "メッセージの受信" アクセス許可が必要です。既定では、すべてのユーザーがパブリック キューおよび専用キューにメッセージを送信するためのアクセス許可を持っています。

トランザクション キューと非トランザクション キュー

トランザクション キューは、トランザクション メッセージ (トランザクション内で送信されるメッセージ) のみを含むキューです。メッセージを送受信するための要件は、使用するキューの種類 (トランザクションまたは非トランザクション) とキューの場所 (ローカルまたはリモート) によって決まります。

メッセージを送信する

トランザクションを使ってメッセージを送信する場合は、キューがある場所に関係なく任意のトランザクション キューにメッセージを送信できますが、トランザクション キューはトランザクションのコンテキスト内で送信されたメッセージだけを受け入れることができます。同様に、非トランザクション キューはトランザクションのコンテキスト外で送信されたメッセージだけを受け入れることができます。

メッセージを受信する

ローカル キューまたはリモート キューからのメッセージを受信できます。

サブキュー

サブキューによって、アプリケーションはメッセージをグループ化できます。サブキューは、次のような場合に便利です。

  • 作業指示の処理。異なる作業指示の項目を含むメッセージをアプリケーションが処理する場合に、サブキューを使って項目を作業指示ごとにグループ化することで、処理効率を上げることができます。

  • 有害なメッセージへの対応。アプリケーションがその時点で処理できないメッセージを受信した場合に、メッセージを障害サブキューに移動して、後で処理できます。

サブキューは、開いたときに暗黙的に作成されます。つまり、メッセージをサブキューに移動すると、サブキューがまだ存在しない場合、この操作によってサブキューが実際に作成されます。サブキューは空になると削除され、開いているハンドルはなくなります。アプリケーションがサブキューに直接メッセージを送信することはできません。サブキューにメッセージを移動することだけが可能です。サブキューからメッセージを受信したり、メイン キューとそのサブキューの間でメッセージを移動したり、同じメイン キューのサブキュー間でメッセージを移動したりできます。メイン キューのサブキューから別のメイン キューのサブキューにメッセージを移動することはできません。

たとえば、次の図では、サブキュー 1 (またはサブキュー 2) とキュー A のキュー メッセージ フォルダーの間でメッセージを移動できます。サブキュー 1 とサブキュー 2 の間でメッセージを移動することもできます。同様に、キュー Z とそのサブキュー、サブキュー 3、サブキュー 4 の間でメッセージを移動できます。

しかし、キュー A とサブキュー 3 またはサブキュー 4 の間や、キュー Z とサブキュー 1 またはサブキュー 2 の間では、メッセージをどちら側にも移動できません。同様に、キュー A のサブキュー (サブキュー 1 またはサブキュー 2) とキュー Z のサブキュー (サブキュー 3 またはサブキュー 4) の間でメッセージを移動することもできません。

サブキュー

サブキューには固有のプロパティや状態はありません。メイン キューのプロパティが共有されます。たとえば、各サブキューに固有の次の情報はありません。

  • クォータ

  • アクセス制御リスト (ACL)

  • トランザクションの種類

サブキューはメイン キューのクォータを共有し、サブキュー内のメッセージはそのクォータに組み込まれます。

ジャーナル キュー、その他のシステム キュー、または他のサブキューの下にサブキューを作成することはできません。

管理キュー

管理キューは、アプリケーションによって生成されるキューです。システムによって生成される否定または肯定の受信確認メッセージを保存するために使われます。これらのメッセージは、メッセージ キューまたはコネクタ アプリケーションによって作成されます。送信アプリケーションは、プログラムで元のメッセージに管理キューを指定します。利用可能な任意の非トランザクション キューを管理キューとして指定できます。管理キューに管理用のメッセージは格納されません。管理用のメッセージは内部専用キューに保存されます。

これらのキューに返されたシステム生成の受信確認メッセージにより、メッセージが送信先キューに到着したかどうか、メッセージが送信先キューから取得されたかどうか、またはその両方がわかります。各受信確認メッセージには、受信確認が何によってトリガーされたか、および受信確認がどのメッセージを指しているかを示す情報が含まれています。送信アプリケーションは受信確認メッセージを要求するときに、管理キューとして使用するキューと、メッセージの受信確認レベルを指定する必要があります。通常、管理キューはローカル キューであるため、送信アプリケーションは受信確認メッセージをローカルで読み取ることができます。

応答キュー

応答キューは、管理キューと同じようにアプリケーションによって生成されます。アプリケーションによって生成される応答メッセージを保存するために使われます。これらのメッセージは、通常、キューからメッセージを読み取るアプリケーションによって返されます。送信アプリケーションは、メッセージを送信するときにプログラムで応答キューを指定します。利用可能な任意のキューを応答キューとして指定できます。応答メッセージは管理用の応答メッセージとは異なります。管理用の応答メッセージは、内部専用キューに保存されます。

これらのキューに返された応答メッセージは、応答メッセージを返したアプリケーションと、応答メッセージを読み取るアプリケーションによって解釈される必要があります。メッセージ キューは、応答メッセージで送信される情報を制御できません。送信アプリケーションは、応答メッセージを要求するときに、応答キューとして使用するキューを指定する必要があります。通常、応答キューはローカル キューであるため、送信アプリケーションは応答メッセージをローカルで読み取ることができます。

応答キューと管理キューの両方が必要な場合は、両方の機能を 1 つのキューにまとめることができます。ただし、すべての管理キューは非トランザクションである必要があるため、このキューは非トランザクション メッセージしか受け入れません。

レポート キュー

レポート キューはアプリケーションによって生成されるキューで、レポート メッセージを保存するために使われます。これらのメッセージは、送信アプリケーションがトレースを要求したときにメッセージ キューまたはコネクタ アプリケーションによって生成されます。レポート メッセージは、メッセージがリモート コンピューター上の送信先に到達するまでの経路、またはテスト メッセージがリモート コンピューター上のテスト キューに到達するまでの経路を示します。レポート キューはコンピューターごとに 1 つだけ生成できます。

すべてのレポート キューは、次のラベルとキューの種類 ID を持つ必要があります。

  • ラベル: MQReport キュー

  • キューの種類 ID:

    {55EE8F32-CCE9-11CF-B108-0020AFD61CE9}

メッセージ キューの管理者は、通常、[Active Directory ユーザーとコンピューター] を使ってレポート キューを作成します。ただし、キューの作成時に正しいラベルとキューの種類 ID を指定すれば、アプリケーションでもレポート キューを生成できます。メッセージ キューは、レポート メッセージを送信するときに、ラベルとキューの種類 ID を使って該当するキューを特定し、開きます。

システム キュー

システム キューは、メッセージ キューによって作成されます。アプリケーションはシステム キュー内のメッセージを読み取ることができますが、システム キューをメッセージの送信先にすることはできません。メッセージ キューには、次に示すさまざまな種類のシステム キューが用意されています。

  • ジャーナル キュー。キューから削除されたすべてのメッセージのコピーが格納されます。コンピューター ジャーナルには、コンピューターから送信されたすべてのメッセージのコピーが格納されます。

  • 内部専用キュー。送信先キューに送信中のメッセージを保存および転送するための一時的なキューとして使用されます。これらのキューは AD DS に公開されません。発信キューはローカルの内部専用キューであり、リモート キューに送信されるメッセージを保存するために自動的に生成されます。

  • 配信不能キュー。配信できないメッセージが格納されます。メッセージ キューには、トランザクション配信不能キューと非トランザクション配信不能キューが用意されています。

  • コネクタ キュー。クロスプラットフォームのメッセージングに使用されます。

  • ローカルの内部キューである発信キューは、リモート キューに送信されるメッセージを保存するために使用されます。オフライン状態の場合、メッセージは発信キューに保存され、接続が再確立されたときにリモート コンピューターのターゲット キューに送られます。これらのキューは自動的に生成されます。これらのキューを手動で作成または削除することはできません。

キューを管理するには、必要に応じて次の手順を実行します。


目次