セールス: 1-800-867-1380

Get Messages

更新日: 2013年11月

Get Messages 操作は、キューの先頭から 1 つ以上のメッセージを取得します。

Get Messages 要求の構成は次のとおりです。HTTPS が推奨されます。myaccount をストレージ アカウントの名前で、myqueue をキューの名前でそれぞれ置き換えます。

 

メソッド 要求 URI HTTP バージョン

GET

https://myaccount.queue.core.windows.net/myqueue/messages

HTTP/1.1

エミューレートされたストレージ サービスに対する要求では、エミュレーターのホスト名とキュー サービス ポートを 127.0.0.1:10001 と指定し、その後にエミューレートされたストレージ アカウント名を指定します。

 

メソッド 要求 URI HTTP バージョン

GET

http://127.0.0.1:10001/devstoreaccount1/myqueue/messages

HTTP/1.1

次の追加パラメーターを要求の URI で指定できます。

 

Parameter 説明

numofmessages

省略可能。キューから取得するメッセージの数を示すゼロ以外の整数値を指定します (上限は 32 件)。表示できるメッセージの数が指定された数よりも少ない場合は、表示できるメッセージが返されます。既定では、この操作によってキューから 1 つのメッセージが取得されます。

visibilitytimeout

必須。サーバー時間を基準に、新しい表示タイムアウト値を秒単位で指定します。新しい値は 1 秒以上にする必要があります。また、7 日 (2011-08-18 より前の REST プロトコル バージョンでは 2 時間) を超える値にはしないでください。メッセージの表示タイムアウト値は、有効期限より後の値に設定できます。

timeout

省略可能。timeout パラメーターは、秒単位で表されます。詳細については、「キュー サービス操作のタイムアウトの設定」を参照してください。

必須要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。

 

要求ヘッダー 説明

Authorization

必須。認証スキーム、アカウント名、および署名を指定します。詳細については、「Azure ストレージ サービスの認証」を参照してください。

Date またはx-ms-date

必須。要求の世界協定時刻 (UTC) を指定します。詳細については、「Azure ストレージ サービスの認証」を参照してください。

x-ms-version

省略可能。この要求に使用する操作のバージョンを指定します。詳細については、「Windows Azure の BLOB サービス、キュー サービス、およびテーブル サービスのバージョン管理」を参照してください。

x-ms-client-request-id

省略可能。Storage Analytics Logging が有効な場合に解析ログに記録される、クライアントで生成された非透過の値を 1 KB の文字制限付きで提供します。クライアント側のアクティビティとサーバーが受け取る要求を相互に関連付けるには、このヘッダーを使用することを強くお勧めします。詳細については、「Storage Analytics Logging について」および「Azure のログ:ログを使用した、ストレージ要求の追跡」を参照してください。

ありません。

応答には、HTTP 状態コードおよび一連の応答ヘッダーが含まれています。

操作が正常に終了すると、ステータス コード 200 (OK) が返されます。

ステータス コードの詳細については、「ステータス コードとエラー コード」を参照してください。

この操作の応答には、次のヘッダーが含まれています。応答に追加の標準 HTTP ヘッダーが含まれる場合もあります。標準ヘッダーはすべて、HTTP/1.1 プロトコル仕様に準拠しています。

 

応答ヘッダー 説明

x-ms-request-id

このヘッダーは要求を一意に識別するので、要求のトラブルシューティングに使用できます。詳細については、「API 操作のトラブルシューティング」を参照してください。

x-ms-version

要求の実行に使用するキュー サービスのバージョンを示します。このヘッダーはバージョン 2009-09-19 以降で行った要求に対して返されます。

Date

サービスによって生成される、応答の開始時刻を示す UTC 日付/時刻値。

Get Messages 操作の応答 XML は次の形式で返されます。

MessageID 要素は、キュー内のメッセージを識別する GUID 値です。キュー サービスによってメッセージに割り当てられる、クライアントに対して非透過の値です。この値を PopReceipt 要素の値と共に使用すると、Get Messages 操作によって取得された後のメッセージをキューから削除できます。PopReceipt の値も、クライアントに対して非透過的です。この値の唯一の目的は、Delete Message 操作でメッセージを削除できるようにすることです。

InsertionTimeExpirationTimeTimeNextVisible の各要素は、RFC 1123 に準拠した形式の UTC 値で表記されます。

DequeueCount 要素には、メッセージが初めてデキューされた時点で値 1 が設定されます。この値は、その後メッセージがデキューされるたびに 1 増分します。

noteメモ
DequeueCount 要素は、キューがバージョン 2009-09-19 のキュー サービスで作成された場合に限り、応答の本文で返されます。

<QueueMessagesList>
    <QueueMessage>
      <MessageId>string-message-id</MessageId>
      <InsertionTime>insertion-time</InsertionTime>
      <ExpirationTime>expiration-time</ExpirationTime>
      <PopReceipt>opaque-string-receipt-data</PopReceipt>
      <TimeNextVisible>time-next-visible</TimeNextVisible>
      <DequeueCount>integer</DequeueCount>
      <MessageText>message-body</MessageText>
    </QueueMessage>
</QueueMessagesList>

Response Status:
HTTP/1.1 200 OK
Response Headers:
Transfer-Encoding: chunked
Content-Type: application/xml
Date: Fri, 16 Sep 2011 21:04:30 GMT
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0

Response Body:
<?xml version="1.0" encoding="utf-8"?>
<QueueMessagesList>
  <QueueMessage>
    <MessageId>5974b586-0df3-4e2d-ad0c-18e3892bfca2</MessageId>
    <InsertionTime>Fri, 09 Oct 2009 21:04:30 GMT</InsertionTime>
    <ExpirationTime>Fri, 16 Oct 2009 21:04:30 GMT</ExpirationTime>
    <PopReceipt>YzQ4Yzg1MDItYTc0Ny00OWNjLTkxYTUtZGM0MDFiZDAwYzEw</PopReceipt>
    <TimeNextVisible>Fri, 09 Oct 2009 23:29:20 GMT</TimeNextVisible>
    <DequeueCount>1</DequeueCount>
    <MessageText>PHRlc3Q+dGhpcyBpcyBhIHRlc3QgbWVzc2FnZTwvdGVzdD4=</MessageText>
  </QueueMessage>
</QueueMessagesList>

この操作を実行できるのは、アカウント所有者と、この操作を実行するアクセス許可を持つ共有アクセス署名を使用する任意のユーザーです。

メッセージの内容は、Put Message 操作で使用された形式で取得されます。

メッセージがキューから取得されるとき、応答にはメッセージと POPReceipt 値が含まれます。POPReceipt 値はメッセージの削除に必要です。メッセージは、キューから自動的には削除されませんが、取得された後、visibilitytimeout パラメーターで指定されている時間が経過するまで、他のクライアントからは参照できません。

複数のメッセージを取得した場合は、各メッセージに POPReceipt が関連付けられます。一度に取得可能なメッセージの上限数は 32 件です。

メッセージを取得したクライアントは、処理を行った後、応答の TimeNextVisible 要素で指定されている時間が経過する前に、メッセージを削除する必要があります。この要素の値は、visibilitytimeout パラメーターの値から計算されます。メッセージが取得された時刻に visibilitytimeout の値が追加されて、TimeNextVisible の値が決まります。

特定の visibilitytimeout を使って取得されるメッセージは、クロック スキューのため、指定されたタイムアウトが経過する前に再度表示できます。クライアントでは、メッセージが POPReceipt に基づき (各デキュー メッセージに対して一意)、別のクライアントによって既にデキュー済みであることを推測できることに注意してください。クライアントの POPReceipt がメッセージの削除または更新について既に機能しておらず、クライアントが 404 (Not Found) エラーを受け取る場合、メッセージは他のクライアントによってデキューされています。

通常、コンシューマーが Get Messages でメッセージを取得すると、このメッセージは visibilitytimeout に指定された期間が経過するまで削除対象として予約されますが、この動作は保証されていません。visibilitytimeout に指定された期間が経過した後は、他のコンシューマーが再びメッセージを参照できるようになります。その後このメッセージを別のコンシューマーが取得および削除しなければ、元のコンシューマーが元の POPReceipt を使用してこのメッセージを削除できます。

メッセージが初めて取得されると、その DequeueCount プロパティが 1 に設定されます。このメッセージが削除されず、後から再び取得された場合は、DequeueCount プロパティの値が 1 増えます。クライアントはこの値を使用して、メッセージが取得された回数を確認できます。

visiblitytimeout または numofmessages パラメーターが範囲外の場合は、ステータス コード 400 (Bad Request) と、次の例に示す追加のエラー情報が返されます。


HTTP/1.1 400 One of the query parameters specified in the request URI is outside the permissible range.
Connection: Keep-Alive
Content-Length: 455
Via: 1.1 TK5-PRXY-22
Date: Wed, 02 May 2012 19:37:23 GMT
Content-Type: application/xml
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 6a03526c-ca2c-4358-a63a-b5d096988533
x-ms-version: 2011-08-18

<?xml version="1.0" encoding="utf-8"?>
   <Error>
      <Code>OutOfRangeQueryParameterValue</Code>
      <Message>One of the query parameters specified in the request URI is outside the permissible range.
               RequestId:6a03526c-ca2c-4358-a63a-b5d096988533
               Time:2012-05-02T19:37:24.2438463Z
      </Message>
     <QueryParameterName>numofmessages</QueryParameterName>
     <QueryParameterValue>0</QueryParameterValue>
     <MinimumAllowed>1</MinimumAllowed>
     <MaximumAllowed>32</MaximumAllowed>
   </Error>

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました
表示:
© 2015 Microsoft