ピーク/ロック メッセージ (非破壊読み取り)

この操作は、処理を待っているキューまたはサブスクリプションからのメッセージをアトミックに取得およびロックします。 キュー/サブスクリプションの説明で指定されているロック期間中、このメッセージが他の受信者 (同一のキューまたはサブスクリプション上のみ) に配信されないことを保証します。 ロックの期限が切れると、他の受信者もこのメッセージを使用できるようになります。 メッセージの処理を完了するには、受信者がこの操作により受信したロック ID を指定して delete コマンドを発行する必要があります。 メッセージの処理を破棄し、他の受信者のロックを解除するには、 メッセージのロック解除 コマンドを発行する必要があります。そうしないと、ロック期間が切れる可能性があります。

この操作は、At-Least-Once の配信確実性を必要とするアプリケーションで使用する必要があります。 処理が成功する前に受信側がメッセージを削除しない場合、この操作により、ロック期間の経過後に別の受信側が処理を試行できるようになります。

Request

Method 要求 URI HTTP バージョン
POST http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath}/messages/head

または

http{s}://{serviceNamespace}.servicebus.windows.net/{topicPath}/subscriptions/{subscriptionName}/messages/head|HTTP/1.1

要求ヘッダー

必須要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。 ヘッダーには、記載されているプロパティに加えて、カスタム プロパティが含まれる場合があります。 例を参照してください。

要求ヘッダー 説明
承認 次のいずれかのトークン値を指定します。
  • Azure Active Directory (Azure AD) JSON Web トークン (JWT) トークン。
    例: Authorization: Bearer <Azure AD JWT token>.
    Azure AD トークンの生成の詳細については、「 アプリケーションからの認証」を参照してください。
  • SAS トークンです。
    例: Authorization: SharedAccessSignature sr=<NAMESPACE NAME>.servicebus.windows.net&sig=<SHARED ACCESS KEY>&se=<TOKEN EXPIRY INSTANT>&skn=<SHARED KEY NAME>.
    SAS トークンの生成の詳細については、「 Shared Access Signature トークンの生成 」および「 SAS トークンの生成」を参照してください。

要求本文

なし。

[応答]

応答には HTTP ステータス コード、一連の応答ヘッダー、および応答の本文が含まれます。

応答コード

コード 説明
201 メッセージが正常に取得およびロックされました。
204 指定されたタイムアウト期間内に使用可能なメッセージはありません。
400 無効な要求です。
401 認証エラー。
410 指定されたキューまたはサブスクリプションが存在しません。
500 内部エラーです。

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

レスポンス ヘッダー

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

応答ヘッダー 説明
Content-Type application/atom+xml;type=entry;charset=utf-8 を設定します。
Location ロックされたメッセージの URI。 この URI を使用して、メッセージをロック解除または削除できます。
BrokerProperties 受信したメッセージの JSON エンコード BrokerProperties 。 プロパティは LockToken 、返されたメッセージのロック ID を表します。 プロパティは SequenceNumber 、返されるメッセージのシーケンス番号を表します。

応答本文

応答本文は、取得されたメッセージのメッセージ本文です。

次の HTTP 要求は、キューのメッセージをロックして返します。

POST https://your-namespace.servicebus.windows.net/HttpClientSampleQueue/messages/head?timeout=60 HTTP/1.1  
Authorization: SharedAccessSignature sr=your-namespace&sig=Fg8yUyR4MOmXfHfj55f5hY4jGb8x2Yc%2b3%2fULKZYxKZk%3d&se=1404256819&skn=RootManageSharedAccessKey  
Host: your-namespace.servicebus.windows.net  
Content-Length: 0  

Service Bus は、次の応答を返します。 このメッセージにはカスタム プロパティ Priority および Customer が含まれます。

HTTP/1.1 201 Created  
Transfer-Encoding: chunked  
Content-Type: application/atom+xml;type=entry;charset=utf-8  
Location: https://your-namespace.servicebus.windows.net/httpclientsamplequeue/messages/2/7da9cfd5-40d5-4bb1-8d64-ec5a52e1c547  
Server: Microsoft-HTTPAPI/2.0  
BrokerProperties: {"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Wed, 02 Jul 2014 01:32:27 GMT","Label":"M1","LockToken":"7da9cfd5-40d5-4bb1-8d64-ec5a52e1c547","LockedUntilUtc":"Wed, 02 Jul 2014 01:33:27 GMT","MessageId":"31907572164743c38741631acd554d6f","SequenceNumber":2,"State":"Active","TimeToLive":10}  
Priority: "High"  
Customer: "12345,ABC"  
Date: Wed, 02 Jul 2014 01:32:27 GMT  
  
12  
This is a message.  
0  

参照

Service Bus HTTP クライアントのサンプル