为大量用户群和高性能设计XPage应用程序

时间:2012-06-21 18:14:10

标签: performance xpages

以下问题是由即将编写大型XPage应用程序的客户提出的。虽然我认为问题实际上是广泛的,以适应stackoverflow风格,但它们很有趣,这里的专家的集体知识可以产生比一个人回答它们更好的结果:

  1. 有多少concinsent用户可以在1台Lotus Domino服务器上使用XPage应用程序(Lotus Domino服务器上有多个应用程序。不是一个)?
  2. 在运行XPage应用程序时,我们如何定义和分析Lotus Domino服务器上的内存泄漏?
  3. 我们如何才能以正确的方式编写XPage以获得最佳性能并减少内存泄漏?
  4. 不应使用哪些代码方法和对象?
  5. Lotus Script开发人员开始编写XPage代码时会出现什么典型错误?什么是最佳实践?
  6. 我们如何在XPage上为10000-15000用户构建集中的整合应用程序?我们需要多少台服务器?在这种情况下如何配置XPage应用程序?
  7. 如何balace用户?
  8. 我会提供我的见解,请分享你的

2 个答案:

答案 0 :(得分:2)

  1. 字符串有多长?这取决于服务器的配置方式。而“应用程序”可以是单个形式或数百个。只有一个测试可以告诉。通常:构建一个high performance server,最好使用64Bit架构和大量RAM。制作RAM available for the JVM。如果应用程序使用附件,请使用DAOS,将其放在单独的磁盘上 - 当然,请确保您拥有最新版本的Domino(撰写本文时为8.5.3FP1)。
  2. XPages Toolbox包含内存和CPU分析器。
  3. 这取决于应用程序的类型。巧妙地使用范围来缓存,表达式语言和bean而不是SSJS。当你忘记.recycle时,你会泄漏记忆。聘请经验丰富的首席开发人员和read the book the other onetwo。考虑线程化较长时间运行的代码,因此用户无需等待。
  4. 取决于您的需求。 Domino开发的一般经验教训适用于数据库操作,因此FTSearch优于DBSearch,范围用于@DBColumn参数。 EL over SSJS。
  5. 典型错误包括:XPage中的所有代码 - >使用脚本库。 @dblookup,@ dbcolumn而不是范围太多了。在按钮中验证而不是验证器。违反分解原则。忘记使用.recycle()。设计应用程序“像旧的Notes屏幕”而不是单页交互。部分刷新使用太少。没有使用缓存。对象方向太少(脚本库中的crating function graves)。
  6. 这是问题1-5的摘要,没有什么新的回答
  7. 在为Domino服务器集群Domino服务器并将负载均衡器放在前面时,需要将负载均衡器配置为在同一服务器上保持会话,因此部分刷新和Ajax调用将到达为其呈现组件树的服务器用户。

答案 1 :(得分:1)

  1. 这取决于服务器设置,我有XPage外联网,12000注册用户跨越aprox 20 XPage应用程序。它运行在1台Windows 2003服务器上,配备4GB Ram和四核cpu。这20个应用程序的数据量约为60GB。没有Daos,没有豆只是SSJS。表现非常出色。因此,当我将此安装升级到64位和Daos时,应用程序将在更多时进行扩展。所以64Bit和很多Ram是许多用户的关键。

  2. 我没有做任何事情

  3. 确保在执行文档循环时重新调用,使用openntf.org调试工具栏,它将在我们拥有XPage调试器之前节省大量时间。

  4. 一直认为当你做这件事时,这将由几个用户完成,所以尽量减少查找或getElementByKey的数量。尽可能尝试使用ViewNavigator。

  5. 这完全取决于使用系统并发的用户数。如果您有10000 - 15000个并发用户,那么您必须查看应用程序的功能以及有多少用户同时使用同一个应用程序。

  6. 这是我对问题的见解