xPages应用程序的更新将删除Domino服务器上的会话变量。。。这个怎么办?

xPages应用程序的更新将删除Domino服务器上的会话变量。。。这个怎么办?,xpages,Xpages,在相当大的xPages应用程序开发过程中,a意识到这样一个事实:在应用程序设计发生任何更改(导致服务器上重新加载一些内部应用程序)后,Domino会删除应用程序中的所有sessionScope、viewScope、applicationScope变量。我理解这是为了开发过程,但它在生产中确实是不可接受的,因为它会使连接的用户不一致。即使是在代码或xpage上(在任何xpage上,而不是用户正在使用的xpage上)进行简单的打字错误更正,并且将更改应用于生产应用程序也会导致这种删除。有没有办法克服

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

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

前面的问题可能会为您提供一个选项。在原始问题的上下文中,定义侦听器的建议只是提供一个在销毁作用域之前进行清理的机会。但是,这些类型的侦听器也可以用于保存和恢复这些作用域的状态。鉴于JJTB提到的原因,我强烈要求大家注意,但在您进行完全无关的更改(例如,结构上的,而非逻辑上的)的情况下,这将为您提供一种防止用户受到频繁范围清除影响的方法。

jjtbsomhorst解释了原因。我想补充一点:不要依赖作用域变量而使用bean。豆子含有“烹饪新鲜豆子的配方”,使用起来更安全。若您像问题中提到的那个样对应用程序进行更新,那个么在特定事件(通常在加载时)上计算的任何作用域变量都将永远丢失。但如果您使用bean,它的值将在需要时重新创建。

我知道,但是其他服务器正在序列化/反序列化这些对象,并且可以恢复应用程序状态。如果您不小心做了一些更改(即使在designer中打开生产应用程序也会导致生成/重新编译应用程序),用户丢失数据,这可能会是一场真正的灾难。我从来没有遇到过有关sessionScope变量的问题,但我的同事也提出了类似的抱怨。他使用IE9,而我使用FF,也许他的HTTP会话在他的服务器上的定义不同。