Search code examples
memorymsmqmsdtcdistributed-transactions

(MSMQ) mqsvc.exe doesn't release memory


MSDN Thread

Hi, all.

First of all, please excuse any english language mistakes in the following description, because, I'm not a native speaker and well, I can't write it perfectly.

I'm trying to create a .NET (4.0) service for remote/transactional/asynchronous reception of recoverable messages from several queues. So, first, I use BeginPeek method and then Receive method in a TransactionScope (which implicitly uses MSDTC).

The problem is the mqsvc.exe of the host machine (win7/2k8r2 sp1) running my service, which does nothing else (and certainly nothing related to the reception/hosting of messages, MSMQ is empty and clean). mqsvc.exe memory allocation grows and it never releases any memory. All MSMQ registry keys about cache cleaning interval have a short time value (about 1 minute).

I tried several options :

  • with local and remote MSDTC (remote with obviously the host machine of messages).
  • with the COM library mqoa.dll instead of .NET to use explicit MSDTC transactions for MSMQ.
  • with several different machines (all win7/2k8r2 sp1).

There are no exceptions at the execution of my service, and all resources that I can close or/and dispose are closed/disposed as soon as possible. The memory allocation of my service is stable.

In all cases, it's the same problem. How to solve it?

Thanks in advance.

Vincent.


Solution

  • Problem solved on MSDN.

    MSDN Thread