【问题标题】:Update of xPages application removes sessions variables on Domino server ... what to do with this?xPages 应用程序的更新删除了 Domino 服务器上的会话变量……怎么办?
【发布时间】:2012-04-13 08:15:43
【问题描述】:

在相当大的 xPages 应用程序开发过程中,意识到 Domino 会在应用程序设计发生任何更改后删除应用程序中的所有 sessionScope、viewScope、applicationScope 变量(这会导致服务器上的一些内部应用程序重新加载)。我在开发过程中理解这一点,但它在生产中确实是不可接受的,因为它对连接的用户造成不一致。即使是代码或 xpage(在任何 xpage,而不是用户正在处理的 xpage)中的简单错字更正并将更改应用于生产应用程序也会导致此删除。有没有办法克服这种行为? (我知道我可以在工作时间以外更新应用程序,但是当您需要快速交付更改时,新应用程序会出现问题,例如错误修复......)

【问题讨论】:

  • 我从来没有遇到过关于 sessionScope 变量的这个问题,但是我从我的同事那里听到了类似的抱怨。他使用 IE9,而我使用 FF,也许他的 HTTP 会话在他的服务器上的定义不同。

标签: xpages


【解决方案1】:

必须这样做,因为您的应用程序中的任何更改都可能导致作用域变量(及其内容)无效。更新应用程序(任何不仅是 xpage 应用程序)应该在没有/有限数量的用户的指定 trimeframe 中完成。

【讨论】:

  • 我了解,但其他服务器正在序列化/反序列化这些对象,并且可以恢复应用程序状态。如果您不小心做了一些更改(甚至在设计器中打开生产应用程序会导致构建/重新编译应用程序)并且用户丢失了他们的数据,这可能是真正的灾难。
【解决方案2】:

This answer 上一个问题可能会为您提供一个选项。在原始问题的上下文中,定义侦听器的建议只是为了提供一个在范围被销毁之前进行一些清理的机会。但是,这些类型的侦听器也可用于保存和恢复这些范围的状态。由于 JJTB 提到的原因,我敦促您谨慎行事,但当然在您进行完全不相关的更改(例如结构性、非逻辑性)的情况下,这将为您提供一种防止用户受到频繁范围清除影响的方法。

【讨论】:

    【解决方案3】:

    jjtbsomhorst 解释了原因。我想补充一点:不要依赖作用域变量并使用 bean。豆类含有“烹饪新鲜配方”,使用起来更安全。如果您按照问题中所述对应用程序进行更新,则根据特定事件(通常在加载时)计算的任何范围变量都将永远丢失。但是如果你使用 bean - 它的值将在需要时重新创建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 1970-01-01
      • 2021-11-26
      相关资源
      最近更新 更多