Xpages 当JAVA getAllEntries方法(视图类的)跟随对FTSearch方法的调用时,Domino Server 9.0.1 FP3崩溃

Xpages 当JAVA getAllEntries方法(视图类的)跟随对FTSearch方法的调用时,Domino Server 9.0.1 FP3崩溃,xpages,lotus-notes,lotus-domino,Xpages,Lotus Notes,Lotus Domino,我有一个XPage应用程序,它运行在dominoserver8.5.3fp6上,没有任何FTSearch问题 从几周前开始,我就开始着手迁移到dominoserver9.0.1fp3 现在看来我们必须处理这个问题 请记住:我们在Domino Server 8.5.3 FP6上没有问题 在上面的IBM technote中,您可以找到解决问题的段落 这说明了在ViewEntryCollection而不是View对象上运行FTSearch的解决方法 示例(Domino服务器9.0.1崩溃): 示例(

我有一个
XPage
应用程序,它运行在
dominoserver8.5.3fp6
上,没有任何
FTSearch问题

从几周前开始,我就开始着手迁移到
dominoserver9.0.1fp3


现在看来我们必须处理这个问题

请记住:我们在
Domino Server 8.5.3 FP6上没有问题

在上面的IBM technote中,您可以找到解决问题的段落 这说明了在ViewEntryCollection而不是View对象上运行FTSearch的解决方法

示例(Domino服务器9.0.1崩溃):

示例(无崩溃的解决方案):


但是,这种变通方法对我不起作用,因为我必须使用搜索属性处理
。因此,我无法将FTSearch调用从视图移动到ViewEntryCollection

知道为什么Domino9.0.1FP3会出现这个问题吗?

Technote还说:

该问题仅限于搜索返回的文档超过约16300个(具体值可能有所不同)的情况。如果使用方法的MaxDoc参数或Notes.ini FT_Max_Search_结果将该值限制为小于16300个文档的值,则不会出现此问题

FT\u Max\u Search\u Results
TEMP\u INDEX\u Max\u DOC
设置为某个合理的值,例如500。尽管如此,它说低于16300的任何东西都是安全的。

状态报告 首先,我想说的是,我们已经向IBM报告了我们的问题

IBM需要进一步调查的最后问题:

  • 如果您在应用程序中使用LSI_信息功能,请告诉我,好吗

  • 您能否确认该问题是否仍在Domino853中发生,而不是在Domino853FP6中发生

  • 我问这个的原因是这个案子的主要嫌疑犯 似乎是SPR#RGAU8ZRLKH:Xpages:Domino服务器在 点击大视图和参数的最后一页 Ft_max_搜索结果=9999999

    如果这一点得到确认,我们可能会要求我们的开发人员提供修补程序

    这里是我们的发现/答案:

  • 调用不支持的LotusScript函数
    LSI\u Info
    可能会导致崩溃。但我们在应用程序中不使用LSI_INFO函数

  • 我们已经在Domino服务器8.5.3上卸载了FP6,并进行了一些测试,没有出现任何问题。因此,我们无法确认此问题是否仍会在Domino8.5.3上发生。它在DominoServer8.5.3安装(有FP6和没有FP6)上都运行良好

  • 环境详情:

    • Domino服务器8.5.3 64位
    • Windows 64位
    • 没有安装修补程序

    多亏了IBM爱尔兰公司的人员,他们在识别错误方面做得非常好。

    错误得到修复,Domino服务器不再崩溃 我们收到了以下消息,其中有一个指向IBM提供的testfix
    901FP3HF154_W64.exe的链接,该文件运行良好:


    再次感谢IBM Ireland的同事们,他们以非常专业的方式帮助我们解决了问题:)

    如果您当时没有崩溃,我会尝试在第三行添加nview.clear。问题可能是所有条目都试图获取所有内容,而没有考虑到视图已被过滤。我将就此向IBM提出一个支持问题。谢谢您的回答。如果我添加了一个
    niew.clear
    ,那么服务器不会崩溃,但我得到的是
    ViewEntryCollection
    中的所有条目,而不是筛选结果。@Georg,你确定看到了另一个SPR#MMQN6L7KJ5事件吗?您是否将NSD与technote中的堆栈跟踪进行了比较?即使看起来是同一个问题,我还是支持弗雷德里克的建议,将其报告给IBM。每个新报告都会在SPR中添加“权重”,使其更有可能在即将到来的修复包中得到修复。@Dave:首先感谢您的回答。刚才,我将Domino服务器的NSD堆栈跟踪与technote中的8.0.x堆栈跟踪进行了比较。我不能确切地说,它们是否几乎相等,但你可以找到许多相等的线…@Dave:这里是相等的线:线程71/84:[nserver:0488:19e8]致命线程(恐慌)ntdll.ZwWaitForSingleObject内核库.WaitForSingleObjectEx注释。OSRunExternalScript注释。FRTerminateWindowResources注释。OSFaultCleanupExt注释。OSFaultCleanup注释。OSNTUnhandledExceptionFilter注释。谢谢您的回答。我知道这种限制,但问题是,我必须处理16300多份文件。在DominoServer8.5.3上,我有超过50000个文档的FTSearch结果,没有任何问题。在这种情况下,notes.ini条目
    FT\u Max\u Search\u Results
    设置为
    0
    var nview:NotesView = database.getView("luDocumentsDownloadsHistory");
    nview.FTSearch("[Downloader] = Homer Simpson/ncdev");
    
    var col:NotesViewEntryCollection = nview.getAllEntries();
    
    var viewEntry:NotesViewEntry = col.getFirstEntry();
    
    while (viewEntry != null) {
        var tmpEntry:NotesViewEntry = col.getNextEntry();
        viewEntry.recycle();
        viewEntry = tmpEntry;
    }
    
    var nview:NotesView = database.getView("luDocumentsDownloadsHistory");
    
    var col:NotesViewEntryCollection = nview.getAllEntries();
    col.FTSearch("[Downloader] = Homer Simpson/ncdev");
    
    var viewEntry:NotesViewEntry = col.getFirstEntry();
    
    while (viewEntry != null) {
        var tmpEntry:NotesViewEntry = col.getNextEntry();
        viewEntry.recycle();
        viewEntry = tmpEntry;
    }