xpages - 我是否必须在重复函数中使用回收 Notes 对象?

标签 xpages xpages-ssjs

我有一个递归函数,它使用 Notes 对象。请告诉我是否应该为这些对象调用回收方法,或者我可以将其留给垃圾收集器?

function getAllUsersInDepartmentAndSub (nd: NotesDocument, arrData: Array) {
  var strSubPrefix = strTaskLibName + "getAllUsersInDepartmentAndSub/";
  try {
    var ndcResp: NotesDocumentCollection;
    var ndResp: NotesDocument;
    var ndNext: NotesDocument;
    var strTemp: string;

    if (nd) {
        ndcResp = nd.getResponses();
        if (ndcResp) {
            if (ndcResp.getCount() > 0) {
                ndResp = ndcResp.getFirstDocument();
                while (ndResp) {
                    strTemp = @LowerCase(ndResp.getItemValueString("form")); 
                    if (strTemp == "department") {
                        getAllUsersInDepartmentAndSub (ndResp, arrData);
                    } else if (strTemp == "person") {
                        strTemp = ndResp.getItemValueString("fullname");
                        if (@Member(strTemp, arrData) <= 0) {
                            arrData.push(strTemp);                          
                        }
                    }
                    ndNext = ndcResp.getNextDocument(ndResp);
                    ndResp.recycle();
                    ndResp = ndNext;
                }
            }
            ndcResp.recycle();
        }
    }
  } catch(e) {
    writeInfo(strSubPrefix, e, true, true);
  }
}

最佳答案

简而言之:回收回收,回收!

一旦不再需要所有 Domino 对象,您就必须回收它们。 而且你必须小心:如果你错过了一个实例,那么在你的代码中发现回收问题是可怕的。

在上面的代码中,抛出错误时,NotesDocumentCollection ndcResp 不会被回收,并且您的服务器迟早会遇到分配问题。

您应该使用finally语句并回收函数中使用的所有对象,这样即使您的方法中出现问题,它们也会被清理。

关于xpages - 我是否必须在重复函数中使用回收 Notes 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35738797/

相关文章:

javascript - xpages:计算字段中的 HTML 表

dojo - 将多值字段作为 View /网格处理的最佳方法

javascript - 如何更改数据表上的组件id

java - InputTextArea 的 XPages Java 转换器

java - XPage - 使用 POI 4 XPage poiBean

Xpages 使用 PostNewDocument 事件

java - 备注异常 : A required argument has not been provided

xpages - Xpage, createForm=false 禁用链接上的 SSJS 事件?

xpages - 如何直接将内存中的对象嵌入到 RichTextItem 中

javascript - 如何在 xe :dominoViewValuePicker 中选择条目时保存别名