mik*_*_x_ 2 scope lotus-notes lotus-domino xpages
A. xpages中应用程序范围变量的实际生命周期是多少?
B.如有必要,我该如何删除/重置?(我找不到像"重新部署"或"启动停止应用程序"这样的东西,所以我必须重新启动网络服务器,用代码完成,只需从设计师或其他任何东西重新保存我的应用程序......? )
答:各不相同.您可以在XSP属性中设置显式超时(在Designer 9中显示为Application Configuration类别下的设计元素;在8.5.x中,您需要通过Package Explorer导航到WebContent/WEB-INF/xsp.properties).否则,当Domino认为"应该"时,它会超时.这是基于应用程序的使用,因此应用程序的使用越多,除非重新启动HTTP任务(或Domino本身),否则范围将越不可能过期.
B.要销毁整个范围,请重新启动HTTP(或完全重启Domino).注意:这不是
Tell HTTP Restart
...仅重新加载任务的某些部分,并且不重新加载JVM.您需要实际重启任务:
Tell HTTP Quit
Load HTTP
Run Code Online (Sandbox Code Playgroud)
要么
Restart Task HTTP
任务重新启动后,下次访问应用程序时将实例化一个全新的应用程序范围.
您还可以有选择地清理范围.XPage中的每个范围(请求/视图/会话/应用程序)都是Java Map的实例,因此每个范围都支持该接口中定义的所有方法.
我建议只删除特定项目,例如:
applicationScope.remove("myBean");
如果清除整个范围而不实际破坏范围本身(见上文),则可能导致不可预测的行为,因为平台还将自己的信息存储在应用程序范围内(这也适用于其他范围).您应该只删除添加的范围条目.
由于名称应用程序作用域变量已经告诉您,如果在 xsp.properties 中进行了定义,则其生命周期与应用程序运行时一样长,如果您未定义任何内容,则标准持续时间为 30 分钟。或来自IBM:
applicationScope 持续时间是 WebModule 持续时间。Web 模块在第一个请求到来时启动,并最终在一段不活动时间(默认为 30 分钟)后被丢弃。应用程序的每个用户在创建这些变量后都可以访问这些变量,因此这些变量没有隐私。applicationScope 只应用于必须在许多 XPage 之间共享的数据。
如果您使用应用程序范围变量进行开发,您可以通过在设计器中清除应用程序来重置它们,转到:Projekt => 清除...
或者如果这没有帮助,请尝试以下Tommy Valand的代码:
function clearMap( map:Map ){
// Get iterator for the keys
var iterator = map.keySet().iterator();
// Remove all items
while( iterator.hasNext() ){
map.remove( iterator.next() );
}
}
Run Code Online (Sandbox Code Playgroud)
这将允许您在运行时重置应用程序范围,这对于调试和测试非常有用。
归档时间: |
|
查看次数: |
1745 次 |
最近记录: |