1

我有一个带有 40 个 xpages、60 个自定义控件和 cca 的 xpages 应用程序。50 个 java 文件(在 src ... 包资源管理器中使用)为了加快应用程序加载,我在 notes.ini 中使用了这两个变量

XPagesPreload=1 
XPagesPreloadDB=account/w-apps.nsf 
(I use the latest 853FP1)

在日志中我可以看到,这些变量正在被使用,但尽管如此,我总是必须等待 cca 7 秒才能显示第一页(下一次很快)。当我不使用该应用程序时,例如几个小时,在我看来它正在被卸载,然后我不得不再次等待。最后,当您每小时使用一次应用程序时,您总是需要等待一段时间,这很烦人。有没有办法加速/克服这些事情,或者至少避免应用程序卸载?

4

3 回答 3

2

这是 xPages 的常见问题。一段时间后,服务器会卸载您的应用程序以释放内存供其他应用程序使用。您正在搜索的设置是:

xsp.application.timeout

在 nsf / 服务器的 xsp.properties 文件中。如果您更改此数字,您的服务器超时将需要更长的时间,但请注意:

这也意味着不会为可能导致内存不足错误的会话清除内存。

如果您的应用程序需要 7 秒来加载,那么后台会发生很多事情。我认为首先看看你是否可以优化你的架构,优化服务器上​​的内存设置(jvm heapsize),看看你的服务器的规格是否可能是瓶颈是明智的。

于 2012-04-13T09:58:59.653 回答
2

您可以保持会话时间适度,但使用计划代理,该代理只需在一个可以匿名访问的页面上执行 @URLOpen。这可以防止应用程序超时。为此,请将 Anonymous 设置为“无访问权限”,但选中“阅读公共文档”,然后将一页检查为“可供公共访问用户使用”。页面不应该做任何事情,只是发回“OK - I got it”——但保持应用程序上下文处于活动状态。

如果您将代理安排在 08:00 - 18:00 运行,则您的应用程序在正常工作时间内启动

于 2012-04-14T06:03:38.883 回答
1

XPagesPreload在我看来,设置很奇怪而且完全没用。它只会在启动 HTTP 任务或服务器的极少数情况下预加载它们。如果 XPage 在 2.5 小时内未访问,它将被卸载。在使用 8.5.2 进行测试时,我注意到了这 2.5 小时。在 Domino 9 中我只知道它们在几个小时后被卸载,可能仍然是 2.5 小时。

我遇到的问题比 7 秒的加载时间要大得多。第一次加载某些 XPage 需要 1-3 分钟。David Leedy 也提到了类似的加载时间。

经过一些测试,我发现速度缓慢是由查看面板引起的,在该面板中,使用全文搜索获取文档并进行排序(不确定排序是否相关)。当视图索引很大时,这会导致很长的初始加载时间。在第一次页面加载 1-3 秒后,使用不同的全文搜索。我们的视图索引几乎是 0.7GB,因为 12 列可双向排序(客户要求)。缓慢在事件beforeRenderResponse之间afterRenderResponse

我怀疑客户会使用所有这 24 个排序索引,所以我检查了每列中的“推迟索引创建直到第一次使用”选项。然后我丢弃了视图索引,到目前为止它一直很小,早上的第一次加载现在是几秒钟。

于 2013-09-11T13:03:51.183 回答