【问题标题】:SCOM SDK how to remove client cacheSCOM SDK如何删除客户端缓存
【发布时间】:2018-07-18 11:25:37
【问题描述】:

我使用 C# SCOM SDK 将我们的性能和事件数据收集到 SCOM 1801。

为了连接到管理组,我使用下一个代码:

var settings = new ManagementGroupConnectionSettings(serverName)
{
    //CacheMode = CacheMode.None,
    UserName = userName,
    Domain = domain,
    Password = ToSecureString(password)
};

var managementGroup = ManagementGroup.Connect(settings);

一切正常。

但是调用managementGroup.Dispose()方法后GC并没有清理内存。

我已经使用 VS 内存配置文件查看了内存。

我可以看到下一个情况:

当然,我可以使用属性CacheMode=CacheMode.None 禁用缓存 ManagementGroupConnectionSettings类。

但在这种情况下,SCOM SDK 的运行速度非常非常慢。

所以我认为正确的方法是使用缓存,在必要的工作后需要删除缓存。

如何删除 SCOM SDK 客户端缓存?

【问题讨论】:

  • 你打电话给GC.Collect()了吗?
  • @Sinatr 是的,我做到了:managementGroup.Dispose(); GC.Collect(); 但是缓存是存在的。我认为我们需要运行额外的 SCOM SDK 方法来清理缓存。我已经查看了许多文档链接,但不知道我该怎么做...

标签: c# memory-leaks dispose scom


【解决方案1】:

尝试使用CacheMode.ManagementPacks枚举值。

有关 CacheMode 枚举的更多信息,您可以在 Microsoft documentation 上找到。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-21
    • 2011-11-08
    • 2020-11-27
    • 2011-02-04
    • 2011-07-12
    • 2020-09-18
    • 2017-03-18
    • 2012-07-26
    相关资源
    最近更新 更多