Delen via


Peek-Lock bericht (niet-destructief lezen)

Met deze bewerking wordt een bericht uit een wachtrij of abonnement atomisch opgehaald en vergrendeld voor verwerking. Het bericht wordt gegarandeerd niet geleverd aan andere ontvangers (alleen in dezelfde wachtrij of hetzelfde abonnement) tijdens de vergrendelingsduur die is opgegeven in de beschrijving van de wachtrij/het abonnement. Wanneer de vergrendeling verloopt, wordt het bericht beschikbaar voor andere ontvangers. Om de verwerking van het bericht te voltooien, moet de ontvanger een verwijderopdracht uitvoeren met de vergrendelings-id die van deze bewerking is ontvangen. Als u wilt stoppen met de verwerking van het bericht en het wilt ontgrendelen voor andere ontvangers, moet de opdracht Bericht ontgrendelen worden uitgegeven, anders kan de vergrendelingsperiode verlopen.

Deze bewerking moet worden gebruikt in toepassingen waarvoor At-Least-Once-leveringsgaranties zijn vereist. Als de ontvanger het bericht niet verwijdert voordat de verwerking is voltooid, zorgt deze bewerking ervoor dat een andere ontvanger de verwerking kan uitvoeren nadat de vergrendelingsperiode is verstreken.

Aanvraag

Methode Aanvraag-URI HTTP-versie
POST http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath}/messages/head

of

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

Aanvraagheaders

In de volgende tabel worden vereiste en optionele aanvraagheaders beschreven. Naast de vermelde eigenschappen kan de header aangepaste eigenschappen bevatten. Zie het voorbeeld.

Aanvraagkoptekst Description
Autorisatie Geef een van de volgende tokenwaarden op:
  • JSON-webtoken (JWT) van Azure Active Directory (Azure AD).
    Bijvoorbeeld: Authorization: Bearer <Azure AD JWT token>.
    Zie Verifiëren vanuit een toepassing voor meer informatie over het genereren van een Azure AD-token.
  • Een SAS-token.
    Bijvoorbeeld: Authorization: SharedAccessSignature sr=<NAMESPACE NAME>.servicebus.windows.net&sig=<SHARED ACCESS KEY>&se=<TOKEN EXPIRY INSTANT>&skn=<SHARED KEY NAME>.
    Zie Een Shared Access Signature-token genereren en SAS-token genereren voor meer informatie over het genereren van een SAS-token.

Aanvraagbody

Geen.

Antwoord

Het antwoord bevat een HTTP-statuscode, een set antwoordheaders en de hoofdtekst van het antwoord.

Antwoordcodes

Code Beschrijving
201 Het bericht is opgehaald en vergrendeld.
204 Er zijn geen berichten beschikbaar binnen de opgegeven time-outperiode.
400 Ongeldig verzoek.
401 Autorisatiefout.
410 De opgegeven wachtrij of het opgegeven abonnement bestaat niet.
500 Interne fout.

Zie Status- en foutcodes voor meer informatie over statuscodes.

Antwoordheaders

Het antwoord voor deze bewerking bevat de volgende headers. Het antwoord kan ook extra standaard-HTTP-headers bevatten. Alle standaardheaders voldoen aan de HTTP/1.1-protocolspecificatie.

Reactieheader Beschrijving
Content-Type Ingesteld op application/atom+xml;type=entry;charset=utf-8.
Location De URI van het vergrendelde bericht. U kunt deze URI gebruiken om het bericht te ontgrendelen of te verwijderen.
BrokerProperties JSON-gecodeerd BrokerProperties van het ontvangen bericht. De LockToken eigenschap vertegenwoordigt de vergrendelings-id voor het geretourneerde bericht. De SequenceNumber eigenschap vertegenwoordigt het volgnummer van het geretourneerde bericht.

Hoofdtekst van antwoord

De antwoordtekst is de berichttekst van het opgehaalde bericht.

Voorbeeld

Met de volgende HTTP-aanvraag wordt een bericht uit een wachtrij vergrendeld en geretourneerd:

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 retourneert het volgende antwoord. Het bericht bevat de aangepaste eigenschappen Priority en 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  

Zie ook

Service Bus HTTP-clientvoorbeeld