Export (0) Print
Expand All

CloudQueue.DeleteMessage Method (String, String)

Updated: September 27, 2013

[This topic is part of the Windows Azure Storage Client Library 1.7, which has been deprecated. The current recommended version is Storage Client Library 3.0.]

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

public void DeleteMessage (
	string messageId,
	string popReceipt
)

Parameters

messageId

Type: System.String

The message ID.

popReceipt

Type: System.String

The pop receipt value.

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

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);
    }
}

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.


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

Development Platforms

Windows Vista, Windows 7 and Windows Server 2008

Target Platforms

Show:
© 2014 Microsoft