AWS SDK Version 3 for .NET
API Reference

AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Deletes up to ten messages from the specified queue. This is a batch version of DeleteMessage. The result of the action on each message is reported individually in the response.

Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of 200.

Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&Attribute.1=this

&Attribute.2=that

Note:

For PCL and Unity this operation is only available in asynchronous form. Please refer to DeleteMessageBatchAsync.

Namespace: Amazon.SQS
Assembly: AWSSDK.SQS.dll
Version: 3.x.y.z

Syntax

C#
public abstract DeleteMessageBatchResponse DeleteMessageBatch(
         DeleteMessageBatchRequest request
)
Parameters
request
Type: Amazon.SQS.Model.DeleteMessageBatchRequest

Container for the necessary parameters to execute the DeleteMessageBatch service method.

Return Value
The response from the DeleteMessageBatch service method, as returned by SQS.

Exceptions

ExceptionCondition
BatchEntryIdsNotDistinctException Two or more batch entries in the request have the same Id.
EmptyBatchRequestException The batch request doesn't contain any entries.
InvalidBatchEntryIdException The Id of a batch entry in a batch request doesn't abide by the specification.
TooManyEntriesInBatchRequestException The batch request contains more entries than permissible.

Examples

This example shows how to delete messages in batch.

Batch delete messages example

var client = new AmazonSQSClient();

var request = new ReceiveMessageRequest
{
  AttributeNames = new List() { "All" },
  MaxNumberOfMessages = 5,
  QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue",
  VisibilityTimeout = (int)TimeSpan.FromMinutes(10).TotalSeconds,
  WaitTimeSeconds = (int)TimeSpan.FromSeconds(5).TotalSeconds
};

var response = client.ReceiveMessage(request);
var batchEntries = new List();

if (response.Messages.Count > 0)
{
  foreach (var message in response.Messages)
  {
    var batchEntry = new DeleteMessageBatchRequestEntry
    {
      Id = message.MessageId,
      ReceiptHandle = message.ReceiptHandle
    };

    batchEntries.Add(batchEntry);
  }

  var delRequest = new DeleteMessageBatchRequest
  {
    Entries = batchEntries,
    QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue"
  };

  var delResponse = client.DeleteMessageBatch(delRequest);

  if (delResponse.Failed.Count > 0)
  {
    Console.WriteLine("Failed deletions:");

    foreach (var failure in delResponse.Failed)
    {
      Console.WriteLine("  For ID '" + failure.Id + "': ");
      Console.WriteLine("    Code = " + failure.Code);
      Console.WriteLine("    Message = " + failure.Message);
      Console.WriteLine("    Sender's fault? = " + failure.SenderFault);
    }
  }

  if (delResponse.Successful.Count > 0)
  {
    Console.WriteLine("Successful deletions:");

    foreach (var success in delResponse.Successful)
    {
      Console.WriteLine("  ID '" + success.Id + "'");
    }
  }
}
else
{
  Console.WriteLine("No messages to delete.");
}
      

Version Information

.NET Framework:
Supported in: 4.5, 4.0, 3.5

Portable Class Library:
Supported in: Windows Store Apps
Supported in: Windows Phone 8.1
Supported in: Xamarin Android
Supported in: Xamarin iOS (Unified)
Supported in: Xamarin.Forms

Unity:
Supported Versions: 4.6 and above
Supported Platforms: Android, iOS, Standalone

See Also