IBM Lotus Notes Domino DLL

子部

当基于NotesDXLExporter类的对象在导出389条记录(较小的文档)后无法导出第390条记录(这是一个大文档)时,Lotus Notes附带的Domino互操作API会在.NET中导致内存不足异常。

这是一个代码片段:

  1. 我初始化NotesDXLExporter类。

    注意DXLExporter dxl1 = null;

  2. 然后,我配置NotesDXLExported对象,如下所示:

    dxl1 = notesSession.CreateDXLExporter(); dxl1.ExitOnFirstFatalError = false; dxl1.ConvertNotesbitmapsToGIF = true; dxl1.OutputDOCTYPE = false;

  3. 然后,我在使用dxl1类读取文档时执行以下所示的for循环(下面显示发生异常的行)。

    NotesView vincr = database.GetView(@“(AllIssuesView)”); //从NSF文件中查看(int i = 1; i <vincr.EntryCount; i ++){

                    vincrdoc = vincr.GetNthDocument(i);
    
    
                        System.IO.File.WriteAllText(@"C:\Temp\" + i + @".txt", dxl1.Export(vincrdoc)); //OUT OF MEMORY EXCEPTION HAPPENS HERE WHEN READING A BIG DOCUMENT.
    
    
                }
                catch(Exception ex)
                {
                    Console.WriteLine(ex);
                }
    

我尝试使用其他版本的Interop domino dll,但没有成功。

据我了解,我看到一个API问题,但是我不知道我是否缺少什么?

能否请您对此有所说明?

提前致谢。

子部

理查德·施瓦兹(Richard Schwartz)

您还没有说过要使用的Lotus Notes版本。考虑到DXL的历史,我想说您应该在可能的最新版本的Notes上尝试您的代码。

但是,我也看不到任何对recycle()的调用。无法为Domino对象调用recycle()会导致内存从Domino后端类泄漏,并且由于内存不足,这可能会导致问题。您也不应使用for循环和getNthDocument。您应该使用getFirstDocument和getNextDocument的while循环。您将获得更好的性能。将这两件事放在一起,将导致您使用临时文档保存getNextDocument结果的通用模式,从而允许您回收当前文档,然后将临时文档分配给当前文档,这将是这样的(不是错误-检查!)

NotesView vincr = database.GetView(@"(AllIssuesView)"); //view from an NSF file 
vincrdoc = vincr.getFirstDocument();
while (vincrdoc != null)
{ 
   try {
       System.IO.File.WriteAllText(@"C:\Temp\" + i + @".txt", dxl1.Export(vincrdoc));     
   }
   catch(Exception ex)
   {
       Console.WriteLine(ex);
   }
   Document nextDoc = vincr.getNextDocument(vincrdoc);
   vincrdoc.recycle();
   vincrdoc = nextDoc;

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Lotus Notes / IBM注释/ Domino 9-如何在Lotus脚本中以编程方式使电子邮件阅读/未阅读?

来自分类Dev

IBM Lotus Domino进行zabbix认证

来自分类Dev

在IBM / Lotus Domino服务器上运行PHP

来自分类Dev

服务器上Lotus Notes / Domino中的版本控制

来自分类Dev

在 IBM Lotus Notes 中选择文档时如何获取文档

来自分类Dev

IBM Domino Domino的Java代理

来自分类Dev

如何在Domino目录中仅注册Web用户(没有Lotus Notes ID文件)

来自分类Dev

IBM Domino设计库

来自分类Dev

Web服务,用于使用Domino Designer将联系人添加到我的Lotus Notes帐户

来自分类Dev

IBM Notes ODBC 连接问题未在 Domino 9 服务器上清除

来自分类Dev

如何在IBM Lotus Notes的文档属性中隐藏“修改人”

来自分类Dev

IBM Lotus Notes 5.0.9-创建定制移动应用程序

来自分类Dev

如何在IBM Lotus Notes中运行CoSign签名SOAP API?

来自分类Dev

如何在Lotus Domino上设置CORS?

来自分类Dev

IBM Domino和Java 8

来自分类Dev

IBM Domino Designer 9.0.1开发

来自分类Dev

从javascript启动Lotus Notes

来自分类Dev

DAVMail for Lotus Notes

来自分类Dev

Lotus Notes规则异常

来自分类Dev

Lotus Notes LDAP导出

来自分类Dev

Lotus Notes 部署

来自分类Dev

如何将.nsf(IBM Lotus Notes)转换为.pst(MS Outlook)或其他邮件客户端格式

来自分类Dev

IBM Domino iNotes的定制错误页面

来自分类Dev

Lotusscript代理IBM Domino中的URL解码

来自分类Dev

IBM Domino:使用@now 查看公式

来自分类Dev

Lotus Domino Designer中Java库的Java版本

来自分类Dev

格式化视图Lotus Domino设计师

来自分类Dev

如何从Lotus Domino Designer中的表单操作创建响应文档?

来自分类Dev

svn:Lotus Domino SVN中的校验和不匹配

Related 相关文章

热门标签

归档