2

我正在使用 Domino.dll 访问 C#.NET 2.0 中的 NSF 文件

我正在使用多线程一次访问 4 个 NSF 文件,它适用于小型 NSF 文件,但如果我尝试访问大型 NSF 文件,我会得到内存不足异常和Notes 可以支持的最大内存段数是超过

当我在 while 循环中从大型NSFVIewFolder访问NotesDocument对象时,通常会发生此异常。

我正在使用 Marshal.ReleaseComObject(NotesDocument);释放NotesDocument的实例。它仍然抛出相同的异常。

我的目标是一次访问多个 NSF 文件(一次最多 4 个 NSF 文件)以获取大型 NSF 文件(可能以 GB 为单位)。

4

2 回答 2

1

您的问题与问题类似。您使用什么版本的 Domino 来访问数据库?您需要有效地销毁对象。我不认为 ReleaseComObject 正在有效地释放服务器还将用于向 COM 提供数据的内存,从而耗尽内存。

我建议您尝试 Java 来执行此操作,因为内存管理比 COM 得到更好的支持。 这篇文章和这篇文章应该有助于为 Domino 编写 Java。这个简单的示例让您了解如何通过文档集合。

于 2010-03-25T12:25:40.307 回答
1

我不熟悉 C# 接口,但是使用 Java,您需要在进行下一个文档之前显式调用 notes 文档上的 recycle() 方法。不这样做将意味着与 notes 文档相关联的资源将不会被清理。

于 2010-02-24T00:16:46.447 回答