Java XPages:有人能解释一下这些信息吗?

Java XPages:有人能解释一下这些信息吗?,java,memory-leaks,xpages,Java,Memory Leaks,Xpages,我们正在查找内存泄漏,因此可以添加必需的recycle()语句。我们要做的是:在应用程序中打开一个文档,保存并关闭它,然后重复多次。我们可以看到,在大多数情况下,内存使用在几次之后趋于稳定,这似乎是一个好迹象。但偶尔,在大约10次重复之后,应用程序会停止,并显示上面的消息(NullPointerException)或NOACCESS信号 不知道从哪里开始找。。。有什么想法吗 万一有人想知道为什么我们不使用OpenNTF库:应用程序必须在R8.5 Domino服务器上运行。我会检查您是否没有回收任

我们正在查找内存泄漏,因此可以添加必需的recycle()语句。我们要做的是:在应用程序中打开一个文档,保存并关闭它,然后重复多次。我们可以看到,在大多数情况下,内存使用在几次之后趋于稳定,这似乎是一个好迹象。但偶尔,在大约10次重复之后,应用程序会停止,并显示上面的消息(NullPointerException)或NOACCESS信号

不知道从哪里开始找。。。有什么想法吗


万一有人想知道为什么我们不使用OpenNTF库:应用程序必须在R8.5 Domino服务器上运行。

我会检查您是否没有回收任何数据库对象。 还可以使用print在代码中添加多个try{}catch()语句,这样您就可以找到代码崩溃的地方,从而缩小问题的范围

您还可以检查状态和应用程序/会话超时的配置

我会检查您是否没有回收任何数据库对象。 还可以使用print在代码中添加多个try{}catch()语句,这样您就可以找到代码崩溃的地方,从而缩小问题的范围

您还可以检查状态和应用程序/会话超时的配置

我以前没见过。它处于部分刷新(堆栈跟踪的第一行)的调用应用程序阶段,因此当您的SSJS在点击按钮后运行时。“起因”位指向broadcastEvents中的NullPointerException,这是XPages运行时的核心方法。因此,它似乎与您的应用程序逻辑无关,但有更深层次的东西

在搜索“NullPointerException”和“broadcastEvents”时,我遇到了这个技术说明。诚然,这是针对9.0的,但这并不意味着在相同情况下,早期版本中不存在这个问题


这听起来与内存泄漏无关——它没有给出内存不足错误,而是在broadcastEvents(第317行)中遇到了NullPointerException。IBM也许能够解释在这条线上发生了什么,以及为什么它可能会抛出NPE。

我以前从未见过这种情况。它处于部分刷新(堆栈跟踪的第一行)的调用应用程序阶段,因此当您的SSJS在点击按钮后运行时。“起因”位指向broadcastEvents中的NullPointerException,这是XPages运行时的核心方法。因此,它似乎与您的应用程序逻辑无关,但有更深层次的东西

在搜索“NullPointerException”和“broadcastEvents”时,我遇到了这个技术说明。诚然,这是针对9.0的,但这并不意味着在相同情况下,早期版本中不存在这个问题

这听起来与内存泄漏无关——它没有给出内存不足错误,而是在broadcastEvents(第317行)中遇到了NullPointerException。IBM也许能够解释在这条线上发生了什么,以及为什么它可能会抛出NPE。

问题:

15/07/15 11:04: Exception Thrown
Context Path: /aalto803.nsf
Page Name: /Preferences.xsp
javax.faces.FacesException
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:102)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:96)
    at com.ibm.xsp.controller.FacesControllerImpl.execute(FacesControllerImpl.java:256)
    at com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:228)
    at com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:157)
    at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160)
    at com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138)
    at com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576)
    at com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1335)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:853)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:796)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565)
    at com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1319)
    at com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:662)
    at com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:482)
    at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:357)
    at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:313)
    at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)
Caused by: java.lang.NullPointerException
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:317)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:428)
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:94)
    ... 19 more
被追踪为SPR#RGAU9UPLZ7

当在同一会话中有2个对不同XPage实例的并发请求时,会发生此错误, 当请求线程以特定方式交互时(因此通常是间歇的)。 当“页面持久性”选项是“内存中”而不是“磁盘上”(作为文件)时,问题是特定的。

问题:

15/07/15 11:04: Exception Thrown
Context Path: /aalto803.nsf
Page Name: /Preferences.xsp
javax.faces.FacesException
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:102)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:96)
    at com.ibm.xsp.controller.FacesControllerImpl.execute(FacesControllerImpl.java:256)
    at com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:228)
    at com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:157)
    at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160)
    at com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138)
    at com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576)
    at com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1335)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:853)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:796)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565)
    at com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1319)
    at com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:662)
    at com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:482)
    at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:357)
    at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:313)
    at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)
Caused by: java.lang.NullPointerException
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:317)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:428)
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:94)
    ... 19 more
被追踪为SPR#RGAU9UPLZ7

当在同一会话中有2个对不同XPage实例的并发请求时,会发生此错误, 当请求线程以特定方式交互时(因此通常是间歇的)。
这个问题是由于“页面持久性”选项是“内存中”而不是“磁盘上”(作为文件)造成的。

看起来确实是db.recycle()造成的。我希望我能责怪其他开发者…;-))非常感谢。看起来确实是一个db.recycle()导致了这种情况。我希望我能责怪其他开发者…;-))非常感谢。这里很可能就是这样。该应用程序由多个并发iFrame和页面组成,每个都有一个单独的XPage。尚未对同步请求执行任何操作。我们必须对此进行更深入的研究。我们试图从“内存中”移开,但事实证明,要在几个小时内纠正所有错误太难了。。。非常感谢。这里很可能就是这样。该应用程序由多个并发iFrame和页面组成,每个都有一个单独的XPage。尚未对同步请求执行任何操作。我们必须对此进行更深入的研究。我们试图从“内存中”移开,但事实证明,要在几个小时内纠正所有错误太难了。。。非常感谢。