Как я могу получить AbortCount сообщения MSMQ? - PullRequest
3 голосов
/ 06 февраля 2011

Я получаю сообщения из MSMQ в транзакции.Если приложение не может обработать их по какой-либо причине, оно прерывает транзакцию.

После отмены транзакции сообщение возвращается в очередь.Если сообщение получено снова, есть ли способ узнать, было ли сообщение ранее прервано?

Через MMC (пользовательский интерфейс MSMQ) вы можете просмотреть свойства сообщения, чтобы увидеть, сколько раз сообщение былопрервано.

Есть ли способ получить это значение программно?

1 Ответ

1 голос
/ 06 февраля 2011

С сайта MSDN:

Чтобы отслеживать количество попыток чтения сообщения, Windows Vista поддерживает свойство долговременного сообщения, которое подсчитывает количество прерываний и свойство подсчета перемещений,подсчитывает, сколько раз сообщение перемещалось между очередью приложения и его очередями.Канал WCF использует их для вычисления количества повторных попыток приема и количества повторных попыток.В Windows Server 2003 и Windows XP счетчик прерываний поддерживается в памяти каналом WCF и сбрасывается в случае сбоя приложения.Кроме того, канал WCF может хранить количество прерываний в памяти до 256 сообщений в любое время.Если прочитано 257-е сообщение, то счетчик прерываний самого старого сообщения сбрасывается.

Свойства счетчика прерываний и счетчиков перемещений доступны для операции службы в контексте операции.В следующем примере кода показано, как получить к ним доступ.

Страница с примерами: здесь .

...