【问题标题】:(MSMQ) mqsvc.exe doesn't release memory(MSMQ) mqsvc.exe 不释放内存
【发布时间】:2011-09-14 16:17:49
【问题描述】:

MSDN Thread

大家好。

首先,请原谅以下描述中的任何英语错误,因为,我不是母语人士,而且我不能完美地写出来。

我正在尝试创建一个 .NET (4.0) 服务,用于远程/事务性/异步接收来自多个队列的可恢复消息。因此,首先,我使用 BeginPeek 方法,然后在 TransactionScope 中使用 Receive 方法(隐式使用 MSDTC)。

问题是运行我的服务的主机 (win7/2k8r2 sp1) 的 mqsvc.exe,它什么都不做(当然与消息的接收/托管无关,MSMQ 是空的且干净的)。 mqsvc.exe 内存分配增长,它从不释放任何内存。所有关于缓存清理间隔的 MSMQ 注册表项都有一个较短的时间值(大约 1 分钟)。

我尝试了几个选项:

  • 具有本地和远程 MSDTC(显然是消息主机的远程)。
  • 使用 COM 库 mqoa.dll 而不是 .NET 来为 MSMQ 使用显式 MSDTC 事务。
  • 使用多台不同的机器(所有 win7/2k8r2 sp1)。

在执行我的服务时没有例外,我可以关闭或/和处置的所有资源都会尽快关闭/处置。我的服务的内存分配是稳定的。

在所有情况下,都是同一个问题。如何解决?

提前致谢。

文森特。

【问题讨论】:

    标签: memory msmq msdtc distributed-transactions


    【解决方案1】:
    【解决方案2】:

    问题已在 MSDN 上解决。

    MSDN Thread

    【讨论】:

    • 您不应该只提供指向另一个站点的链接作为答案,因为该站点将来可能会过时。相反,请单击此答案上的“编辑”链接,并在此处包含该页面中解决方案的基本部分。见:meta.stackexchange.com/q/8259
    猜你喜欢
    • 2017-06-29
    • 2011-06-30
    • 2016-09-14
    • 2015-08-19
    • 2012-05-15
    • 2018-01-26
    • 2011-09-30
    • 2012-03-18
    • 2011-08-10
    相关资源
    最近更新 更多