(MSMQ) mqsvc.exe не освобождает память - PullRequest
1 голос
/ 14 июня 2011

MSDN Тема

Привет всем.

Прежде всего, пожалуйста, извините за любые ошибки в английском языке в следующем описании, потому что я не являюсь носителем языка, и я не могу написать это идеально.

Я пытаюсь создать службу .NET (4.0) для удаленного / транзакционного / асинхронного приема восстанавливаемых сообщений из нескольких очередей. Итак, сначала я использую метод BeginPeek, а затем метод Receive в TransactionScope (который неявно использует MSDTC).

Проблема в том, что mqsvc.exe хост-машины (win7 / 2k8r2 sp1), на которой запущен мой сервис, не выполняет ничего другого (и, конечно, ничего не связанного с приемом / хостингом сообщений, MSMQ пуст и чист). Распределение памяти mqsvc.exe увеличивается, и оно никогда не освобождает память. Все разделы реестра MSMQ об интервале очистки кэша имеют кратковременное значение (около 1 минуты).

Я пробовал несколько вариантов:

  • с локальным и удаленным MSDTC (удаленным, очевидно, с хост-машиной сообщений).
  • с библиотекой COM mqoa.dll вместо .NET для использования явных транзакций MSDTC для MSMQ.
  • с несколькими разными машинами (все win7 / 2k8r2 sp1).

Нет никаких исключений при выполнении моего сервиса, и все ресурсы, которые я могу закрыть или / и утилизировать, закрываются / утилизируются как можно скорее. Распределение памяти моего сервиса стабильно.

Во всех случаях это одна и та же проблема. Как это решить?

Заранее спасибо.

Винсент.

Ответы [ 2 ]

1 голос
/ 12 августа 2011

Проблема решена в MSDN.

MSDN Thread

...