エクスポート (0) 印刷
すべて展開

クエリのタイムアウトと改ページ

更新日: 2014年2月

テーブル サービスでは次の 2 種類のクエリ操作をサポートしています。

  • Query Tables (REST API) 操作は、指定されたストレージ アカウント内のテーブルの一覧を返します。テーブルの一覧は、要求に指定した条件に従ってフィルター処理できます。

  • Query Entities (REST API) 操作は、指定されたテーブルから一連のエンティティを返します。クエリの結果は、要求に指定した条件に従ってフィルター処理できます。

テーブル サービスに対するクエリは最長 5 秒間実行され、一度に最大 1,000 個の項目が返されます。返される項目数が 1,000 個を超える場合、クエリが 5 秒以内に終了しない場合、またはクエリがパーティション境界を超える場合は、結果セット内の次の項目からクエリを再開するために使用する継続トークンを含むヘッダーが応答に含まれます。継続トークン ヘッダーが返される操作は Query Tables (REST API) または Query Entities (REST API) です。

クエリのスケジュール設定および処理用として要求に割り当てられる時間は、クエリの実行に要する 5 秒を含め、合計で 30 秒間です。

クエリで結果が返されず、継続ヘッダーのみが返される場合もあります。

継続トークン ヘッダーを次の表に示します。

 

継続トークン ヘッダー 説明

x-ms-continuation-NextTableName

このヘッダーは Query Tables (REST API) 操作のコンテキストで返されます。テーブル一覧の一部のみが返された場合は、一覧内の次のテーブルの名前のハッシュが継続トークン ヘッダーに含まれます。

x-ms-continuation-NextPartitionKey

このヘッダーは Query Entities (REST API) 操作のコンテキストで返されます。このヘッダーには、テーブルに対する後続のクエリで返される次のパーティション キーのハッシュが含まれます。

x-ms-continuation-NextRowKey

このヘッダーは Query Entities (REST API) 操作のコンテキストで返されます。このヘッダーには、テーブルに対する後続のクエリで返される次の行キーのハッシュが含まれます。

一部のインスタンスでは、x-ms-continuation-NextRowKeynull になる場合があります。

継続トークンを取得し、後続のクエリを実行して結果の次のページを取得するには、まず応答ヘッダーの継続トークンを確認します。ヘッダーが存在しないか、ヘッダーの値が null の場合、それ以上返されるエンティティはありません。.NET クライアント ライブラリを使用して継続トークンを手動で処理している場合は、まず、クエリ操作の結果を QueryOperationResponse オブジェクトにキャストします。これによって、QueryOperationResponse オブジェクトの Headers プロパティ内の継続トークン ヘッダーにアクセスできます。

継続トークンを取得した後、その値を使用して、結果の次のページを取得するクエリを作成します。クエリの要求 URI で次のパラメーターを指定できます。これらのパラメーターは応答で返される継続トークン ヘッダーに対応します。

  • NextTableName

  • NextPartitionKey

  • NextRowKey

noteメモ
クライアントからクエリ操作のタイムアウトを設定するには、DataServiceContext クラスの Timeout プロパティを使用します。クエリのスケジュール設定および処理用として要求に割り当てられる時間は、クエリの実行に要する 5 秒を含め、合計で 30 秒間です。

挿入または削除操作の場合、クライアントからエラーが返された場合でもサーバーで操作が成功していることがあります。このような現象は、クライアントのタイムアウトが挿入、更新、または削除操作の最大タイムアウト値である 30 秒より短い時間に設定されている場合に起こることがあります。

次のコード例は、Customers という名前のテーブルに対するエンティティ クエリから返される、継続ヘッダーを含む応答ヘッダーの例を示しています。この例では x-ms-continuation-NextPartitionKeyx-ms-continuation-NextRowKey が返されています。

Date: Mon, 25 Nov 2013 20:11:08 GMT
Content-Type: application/atom+xml;charset=utf-8
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
Cache-Control: no-cache
x-ms-request-id: f9b2cd09-4dec-4570-b06d-4fa30179a58e
x-ms-version: 2013-08-15
x-ms-continuation-NextPartitionKey: 1!8!U21pdGg-
x-ms-continuation-NextRowKey: 1!8!QmVuOTk5
Content-Length: 880298

次のページのデータを要求するには、次のような URI を指定します。

http://myaccount.table.core.windows.net/Customers?NextPartitionKey=1!8!U21pdGg-&NextRowKey=1!12!QmVuMTg5OA--

関連項目

表示:
© 2014 Microsoft