The AWS Java SDK for Amazon SQS module provides client classes for communicating with Amazon Simple Queue Service
—
Dead Letter Queue (DLQ) operations provide management of message redrive policies, source queue discovery, and message movement tasks for handling messages that cannot be processed successfully.
Discover which queues use a specific queue as their dead letter queue.
ListDeadLetterSourceQueuesResult listDeadLetterSourceQueues(ListDeadLetterSourceQueuesRequest request);
// Convenience method
ListDeadLetterSourceQueuesResult listDeadLetterSourceQueues(String queueUrl);
class ListDeadLetterSourceQueuesRequest extends AmazonWebServiceRequest {
String getQueueUrl();
ListDeadLetterSourceQueuesRequest withQueueUrl(String queueUrl);
String getNextToken();
ListDeadLetterSourceQueuesRequest withNextToken(String nextToken);
Integer getMaxResults();
ListDeadLetterSourceQueuesRequest withMaxResults(Integer maxResults);
}
class ListDeadLetterSourceQueuesResult {
List<String> getQueueUrls();
String getNextToken();
}Move messages from a dead letter queue back to their source queue.
StartMessageMoveTaskResult startMessageMoveTask(StartMessageMoveTaskRequest request);
class StartMessageMoveTaskRequest extends AmazonWebServiceRequest {
String getSourceArn();
StartMessageMoveTaskRequest withSourceArn(String sourceArn);
String getDestinationArn();
StartMessageMoveTaskRequest withDestinationArn(String destinationArn);
Integer getMaxNumberOfMessagesPerSecond();
StartMessageMoveTaskRequest withMaxNumberOfMessagesPerSecond(Integer maxNumberOfMessagesPerSecond);
}
class StartMessageMoveTaskResult {
String getTaskHandle();
}Stop an in-progress message move operation.
CancelMessageMoveTaskResult cancelMessageMoveTask(CancelMessageMoveTaskRequest request);
class CancelMessageMoveTaskRequest extends AmazonWebServiceRequest {
String getTaskHandle();
CancelMessageMoveTaskRequest withTaskHandle(String taskHandle);
}
class CancelMessageMoveTaskResult {
String getApproximateNumberOfMessagesMoved();
}View active and completed message move tasks.
ListMessageMoveTasksResult listMessageMoveTasks(ListMessageMoveTasksRequest request);
class ListMessageMoveTasksRequest extends AmazonWebServiceRequest {
String getSourceArn();
ListMessageMoveTasksRequest withSourceArn(String sourceArn);
Integer getMaxResults();
ListMessageMoveTasksRequest withMaxResults(Integer maxResults);
}
class ListMessageMoveTasksResult {
List<ListMessageMoveTasksResultEntry> getResults();
}Usage Example:
// Find source queues for a DLQ
ListDeadLetterSourceQueuesResult sources = client.listDeadLetterSourceQueues(dlqUrl);
System.out.println("Source queues: " + sources.getQueueUrls());
// Move messages back to source
String sourceArn = "arn:aws:sqs:us-east-1:123456789012:SourceQueue";
String dlqArn = "arn:aws:sqs:us-east-1:123456789012:DeadLetterQueue";
StartMessageMoveTaskResult moveTask = client.startMessageMoveTask(
new StartMessageMoveTaskRequest()
.withSourceArn(dlqArn)
.withDestinationArn(sourceArn)
.withMaxNumberOfMessagesPerSecond(100));
String taskHandle = moveTask.getTaskHandle();
System.out.println("Started move task: " + taskHandle);
// Monitor or cancel if needed
client.cancelMessageMoveTask(new CancelMessageMoveTaskRequest()
.withTaskHandle(taskHandle));Install with Tessl CLI
npx tessl i tessl/maven-com-amazonaws--aws-java-sdk-sqs