Verrouillage temporaire de message (lecture non destructrice)
Cette opération récupère et verrouille atomiquement un message d'une file d'attente ou d'un abonnement pour traitement. Vous avez la garantie que le message n'est pas remis à d'autres récepteurs (de la même file d'attente ou du même abonnement uniquement) durant la durée de verrouillage spécifiée dans la description de la file d'attente/l'abonnement. Après expiration du verrouillage, le message est disponible pour les autres récepteurs. Afin de terminer le traitement du message, le récepteur doit émettre une commande de suppression avec l'ID de verrouillage reçu de cette opération. Pour abandonner le traitement du message et le déverrouiller pour d’autres récepteurs, une commande Déverrouiller le message doit être émise, sinon la durée du verrouillage peut expirer.
Cette opération doit être utilisée dans les applications qui nécessitent des assurances de livraison Une fois au minimum. Si le destinataire ne supprime pas le message avant que le traitement ne réussisse, cette opération garantit qu’un autre destinataire peut tenter de le traiter après l’expiration de la période de durée de verrouillage.
Requête
Méthode | URI de demande | Version HTTP |
---|---|---|
POST | http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath}/messages/head or http{s}://{serviceNamespace}.servicebus.windows.net/{topicPath}/subscriptions/{subscriptionName}/messages/head|HTTP/1.1 |
En-têtes de requête
Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs. Outre les propriétés répertoriées, l'en-tête peut contenir des propriétés personnalisées. Consultez l'exemple.
En-tête de requête | Description |
---|---|
Autorisation | Spécifiez l’une des valeurs de jeton suivantes :
|
Corps de la requête
Aucun.
response
La réponse inclut un code d'état HTTP, un ensemble d'en-têtes de réponse et le corps de réponse.
Codes de réponse
Code | Description |
---|---|
201 | Message correctement récupéré et verrouillé. |
204 | Aucun message disponible dans le délai d'expiration spécifié. |
400 | Demande incorrecte. |
401 | Échec de l'autorisation. |
410 | La file d'attente ou l'abonnement spécifié n'existe pas. |
500 | Erreur interne. |
Pour plus d’informations sur les codes status, consultez Codes d’état et d’erreur.
En-têtes de réponse
La réponse de l'opération inclut les en-têtes suivants. La réponse peut aussi inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.
En-tête de réponse | Description |
---|---|
Content-Type |
Défini sur application/atom+xml;type=entry;charset=utf-8 . |
Location |
URI du message verrouillé. Vous pouvez utiliser cet URI pour déverrouiller ou supprimer le message. |
BrokerProperties |
Encodé BrokerProperties au format JSON du message reçu. La LockToken propriété représente l’ID de verrou du message retourné. La SequenceNumber propriété représente le numéro de séquence du message retourné. |
Corps de la réponse
Le corps de la réponse est le corps du message récupéré.
Exemple
La requête HTTP suivante verrouille et renvoie un message d'une file d'attente :
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 retourne la réponse suivante. Le message contient les propriétés personnalisées Priority
et 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