メッセージ キューのキュー
このセクションでは、Microsoft メッセージ キュー (MSMQ) アダプタを使用する際に、MSMQ キューを指定する方法について説明します。 パスを指定するための名前付け規則、およびパスをキューの指定に変換するときの形式名の役割についても説明します。
キューのパスの名前付け規則
キュー名でパスを参照する場合、次の表の名前付け規則を使用します。
[キューの種類] | パスの構文 |
---|---|
パブリック キュー | Computername\QueueName |
専用キュー | Computername\Private$\QueueName |
ジャーナル キュー | Computername\QueueName\Journal$ |
コンピューター ジャーナル キュー 注: 受信キューのみに使用します。 | Computername\Journal$ |
コンピューターの配信不能キュー 注: 受信キューにのみ使用します。 | Computername\Deadletter$ |
コンピューター トランザクションの配信不能キュー 注: 受信キューにのみ使用します。 | Computername\XactDeadletter$ |
Note
キューのパスは、一意である必要があります。
キュー名で形式名を参照する場合、形式名は、キューがパブリックかプライベートかを示す文字列から始まり、キューに対して生成された GUID、および必要に応じてその他の識別子が続きます。 次の表の名前付け規則を使用してください。
形式の種類 | 形式名の構文 |
---|---|
パブリック | FormatName:P ublic=QueueGUID |
直接 | FormatName:D IRECT=SPX:NetworkNumber:HostNumber\QueueName FormatName: DIRECT=TCP:IPAddress\QueueName FormatName: DIRECT=OS:ComputerName\QueueName |
送信ポートのキューのパスが同報リストである場合、キューのパスの構文は次のとおりです。
DL=同報リストの GUID
送信または受信キューのパスが、HTTP または HTTPS の URL である場合、構文は次のとおりです。
FormatName:DIRECT=http://<client name>/msmq/<queue name>
FormatName:DIRECT=https://<client name>/msmq/<queue name>
Note
"msmq" は、メッセージ キューによってインターネット インフォメーション サービス (IIS) に作成される仮想フォルダです。
Note
HTTP は、メッセージの送信のみに使用できます。 リモート コンピューターのキューのメッセージは、キューが HTTP の直接形式名を使用して開かれている場合は、読み取ることができません。 HTTP を使用しない専用キューまたはパブリック キューのパスを使用して、リモート キューの SOAP (形式の) メッセージを受信することはできます。
管理者がキューに指定した説明的なテキスト ラベルをキュー名で参照している場合、そのラベルを参照するキューのパスの構文は次のとおりです。
LABEL:MyQueue
Note
ラベルは一意とは限りません。 そのため、ラベルを使用して特定のキューに接続しようとしたときに名前の競合があると、エラーが返されます。
Note
ラベルはアダプタの必須のトランスポート フィールドです。
形式名の役割
形式名は、キューを識別し、キューへのアクセス方法を特定するために使用されます。 形式名はメッセージ キューによってキューに割り当てられます。
"コンピュータ名\キュー名" など、パス名の構文を使用してキューを指定するとき、メッセージ キューはパスを検索して関連する形式名を検出します。 その後、形式名を使用してキューにアクセスします。 形式名を指定すると、メッセージ キューではその形式名が使用されます。
形式名の詳細については、.NET Framework クラス ライブラリ ヘルプの「MessageQueue.FormatName プロパティ」を参照してください。
キューのパスに関するトラブルシューティング
指定したキューのパスの構文が、前半の「キューのパスの名前付け規則」に記載した形式のいずれとも一致しない場合、例外が発生します。
キューのパスのコンピュータ名には、以下の文字は無効です。
\ ; , + "
コンピュータ名が数字である場合、例外が発生します。 例: 234\private$\queue。
コンピュータの配信不能キュー、コンピュータ ジャーナル キュー、およびコンピュータのトランザクション配信不能キューを使用する場合、ユーザーが送信先のキューとしてシステム キューを指定すると、例外が発生します。
System.Messaging.MessageQueue.Exists はリモート キューでは機能しません。 詳細については、.NET Framework クラス ライブラリ ヘルプの「MessageQueue.Exists メソッド」を参照してください。