CloudQueue.DeleteMessage Method (String, String)

Storage Client Library NET API

[This topic is part of the Microsoft Azure Storage Client Library 1.7, which has been deprecated. See Storage Client Library for the latest version.]

Deletes a message based on the message ID, and the pop receipt value.

Namespace: Microsoft.WindowsAzure.StorageClient
Assembly: Microsoft.WindowsAzure.StorageClient (in Microsoft.WindowsAzure.StorageClient.dll)

Usage

Visual Basic
Dim instance As CloudQueue
Dim messageId As String
Dim popReceipt As String

instance.DeleteMessage(messageId, popReceipt)

Syntax

Visual Basic
Public Sub DeleteMessage ( _
	messageId As String, _
	popReceipt As String _
)
C#
public void DeleteMessage (
	string messageId,
	string popReceipt
)
C++
public:
void DeleteMessage (
	String^ messageId, 
	String^ popReceipt
)
J#
JScript

Parameters

messageId

Type: System.String

The message ID.

popReceipt

Type: System.String

The pop receipt value.

Example

The following example adds some messages to a queue, retrieves them, and deletes them.

C# Copy Code
static void DeleteQueueMessages(Uri queueEndpoint, string accountName, string accountKey)
{
    //Create service client for credentialed access to the Queue service.
    CloudQueueClient queueClient = new CloudQueueClient(queueEndpoint,
        new StorageCredentialsAccountAndKey(accountName, accountKey));

    //Get a reference to a queue in this storage account.
    CloudQueue queue = queueClient.GetQueueReference("myqueue");
    //Create the queue if it does not already exist.
    queue.CreateIfNotExist();

    //Clear any existing messages from the queue.
    queue.Clear();

    //Create some new messages and add them to the queue.
    for (int i = 0; i < 10; i++)
    {
        CloudQueueMessage msg = new CloudQueueMessage("message" + i.ToString());
        queue.AddMessage(msg);
        Console.WriteLine("Adding message with content: " + msg.AsString);
    }

    //Delete five messages from the queue.
    foreach(CloudQueueMessage msg in queue.GetMessages(5))
    {
        queue.DeleteMessage(msg);
        Console.WriteLine("Deleting message: " + msg.Id);
    }

    Console.WriteLine();

    //Delete five more messages from the queue.
    foreach (CloudQueueMessage msg in queue.GetMessages(5))
    {
        queue.DeleteMessage(msg.Id, msg.PopReceipt);
        Console.WriteLine("Deleting message " + msg.Id);
    }
}

Remarks

After a client retrieves a message by calling the GetMessage or GetMessages method, the client is expected to process and delete the message. When a message is retrieved, its PopReceipt property is set to an opaque value that indicates that the message has been read. The value of the message's pop receipt is used to verify that the message being deleted is the same message that was read.

After a client retrieves a message, that message is reserved for deletion until the date and time indicated by the message's NextVisibleTime property, and no other client may retrieve the message during that time interval. If the message is not deleted before the time specified by the NextVisibleTime property, it again becomes visible to other clients. If the message is not subsequently retrieved and deleted by another client, the client that retrieved it can still delete it. If another client does retrieve it, then the first client can no longer delete it.


Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

Windows Vista, Windows 7, Windows Server 2008, Windows 8.1, Windows Server 2012 R2, Windows 8 and Windows Server 2012

Change History

See Also