Одно сообщение, повторно прочитанное без подтверждения, переводит все сообщения в DLQ после окончательного подтвержденияC#

Место общения программистов C#
Ответить
Anonymous
 Одно сообщение, повторно прочитанное без подтверждения, переводит все сообщения в DLQ после окончательного подтверждения

Сообщение Anonymous »

У меня возникла проблема, из-за которой все сообщения в моей очереди ActiveMQ Artemis перемещаются
в DLQ (очередь недоставленных писем) во время разработки. Это происходит, когда я читаю одно и то же
сообщение несколько раз, не подтверждая его (путем остановки отладчика в Visual
Studio 2022), а затем, наконец, подтверждаю его.
Сценарий разработки
Во время разработки мне нужно неоднократно тестировать логику обработки сообщений. Мой рабочий процесс:
  • Прочитать сообщение из очереди (без подтверждения)
  • Отладить логику обработки в Visual Studio 2022
  • Остановить отладку перед подтверждением сообщения
  • Повторить шаги n раз с одним и тем же сообщением
  • Наконец подтвердить сообщение после завершения отладки
Однако, когда я подтверждаю сообщение на шаге 5, все сообщения в очереди
перемещаются в DLQ.
Настройка соединения

Код: Выделить всё

// Create connection factory
var connectionFactory = new NMSConnectionFactory(queueUrl);

// Create connection
var connection = connectionFactory.CreateConnection(userName, password);

// Create session with IndividualAcknowledge mode
var session = connection.CreateSession(
AcknowledgementMode.IndividualAcknowledge);

// Create queue destination with prefetch settings
var destination = session.GetQueue(
$"{queueName}?consumer.prefetchSize=1&consumer.dispatchAsync=false");

// Create consumer
var consumer = session.CreateConsumer(destination);

// Start connection
connection.Start();
Чтение сообщения (упрощенный пример)

Код: Выделить всё

var message = consumer.Receive(TimeSpan.FromSeconds(5));

if (message != null)
{
// Process message (debugging happens here)
ProcessMessage(message);

// Acknowledge after debugging
message.Acknowledge(); // 

Подробнее здесь: [url]https://stackoverflow.com/questions/79798781/single-message-repeatedly-read-without-acknowledgment-moves-all-messages-to-dlq[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»