Xpages 脱离服务器端缓存

2023-12-08

这个问题可能与非常具体的 Domino 版本有关(见下文),因此我从一些技术细节开始:

有问题的服务器是虚拟化的 Windows 2008 R2 64 位计算机。多米诺骨牌发布是

IBM Domino (r) 服务器(64 位)(适用于 Windows/64 的版本 9.0.1FP4 HF70)

已安装最新的 JVM 安全补丁(9.0.1.4,日期 20150724)。

我可能是错的,但我觉得问题是在我们安装最新补丁后开始的(FP4 HF70 and JVM):

在 Xpage 上,我有一个非常简单的“刷新”类型按钮,仅触发某个页面的部分刷新xp:panel (id="pnMainContainer")围绕着我页面的大部分。在其他组件中,内部有一个选项卡式面板pnMainContainer。设置为在加载页面时使用三个选项卡中的第一个打开。

假设我打开了第三个选项卡,通常如果我单击“刷新”按钮,选项卡 #3 会保持打开状态,并且其内容会按预期刷新。

然而,有时,在我将页面打开几分钟后(不能真正说多久,也许大约半小时),刷新显然会返回到其初始状态,显示第一个选项卡而不是原来的选项卡之前打开,并清空之前填写的所有可编辑字段。

发生这种情况时,我会在控制台上看到以下警告:

HTTP JVM:警告:CLFAD####W:状态数据不适用于 /myPage 因为在缓存中没有找到控制树。

我知道这里有这篇文章:Xpages文件改变文件模式?,虽然我不在我的应用程序中使用 Xagents,但我尝试设置我的页面viewState财产给nostate。这显然无助于解决问题。

另一个可能有用的细节是,相关页面使用了绑定到 viewScope 的 ManagedBean。

有什么想法可能导致这种情况,而且 - 此外 - 如何改变这种行为?

2015年9月10日更新:按照下面 @Paul 的建议,我昨晚将应用程序的会话超时设置为 120 分钟(xsp.session.timeout=120)。今天早上我再次尝试:加载有问题的页面,然后让它在那里停留大约。 45分钟。之后点击我的部分刷新按钮。结果:页面重新加载到其初始状态,服务器控制台显示与昨天相同的警告。

为了完整起见,这是我的应用程序 xsp.properties 目前的全部内容:

xsp.error.page.default=true
xsp.library.depends=com.ibm.xsp.extlib.library
xsp.resources.aggregate=true
xsp.theme=oneuiv3.0.2
xsp.session.timeout=120
xsp.application.timeout=120
xsp.persistence.mode=basic

那里可能有什么东西会导致这种行为吗?

Some more details:做了更多测试并发现了以下详细信息:

  1. 使用上面提到的 xsp.properties,只要我让页面坐在那里,缓存似乎会稳定很长一段时间
  2. 一旦我在页面或相关代码(SSJS 库、托管 bean 或页面本身)中进行任何类型的调整,就需要重建缓存,因为页面状态丢失(即使几秒钟后)。 Designer 中是否打开“自动构建”并不重要
  3. 尝试设置页面持久性xsp.persistence.mode=basic to xsp.persistence.mode=file。当我打开选项卡 #3 时,这会导致“java.io.NotSerializedException”,该选项卡利用在 viewScope 级别注册的 ManagedBean 的内部属性
  4. 在同一服务器上构建一个非常简单的应用程序,只有几个部分刷新按钮:结果是该测​​试应用程序中的页面永远不会丢失页面状态

只要缓存仅在我更新设计时丢失,我并不关心。但我担心,如果许多用户开始访问这些页面,情况可能会升级。

我还能做些什么来提高性能吗?


viewState="nostate" 基本上意味着不存储此页面服务器端的组件树或作用域变量。这就是为什么您将它用于 XAgents,它永远不会被部分刷新。

关键数据是: 1) XPage 会话设置为超时的速度。一旦超时,您将丢失状态数据。我认为 keepSessionAlive 控件在这里没有帮助。 2) 浏览器中是否正在打开其他选项卡。还有其他 XPages 属性决定内存/磁盘中存储的页面数。最大值是为整个浏览器会话存储的,一旦达到最大值,最早的值就会从内存中删除,因此会出现相同的消息(以及在 XAgent 上设置 nostate 的另一个原因)。

听起来第一个是原因。请注意,XPages 会话超时和 http 超时是单独的超时。第一个是当前会话的状态数据被删除并且是特定于应用程序的(因为每个 XPage 应用程序都有一个单独的运行时 JVM),第二个是对浏览器的后续请求将提示进行身份验证。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xpages 脱离服务器端缓存 的相关文章

  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 如何从 .java 文件制作 JAR?

    我正在使用 Java 应用程序编写一个简单的程序 不是具有项目的应用程序 而是项目内的应用程序 java 具有单个框架 这两个文件都是 java所以我不能写manifestJAR 需要 The 我的应用程序 java像带有包的类一样开始 然
  • JavaScript:覆盖整个类的构造函数中定义的属性

    我试图覆盖一个类的功能 class MyClass constructor more code myFunction function console log not this can t change the code above MyC
  • 如何让身高真正达到100%

    在 CSS 中 当您将某些内容的宽度或高度设置为 100 时 它实际上只会将其设置为浏览器窗口的 100 有什么办法可以让它100 占整个页面吗 让我重新表述一下 我希望这个元素 div 占据整个页面 无论您滚动多少 让父元素具有 100
  • 如何在 iOS16 的 Swift 中用 NavigationLink(value:label:) 替换 init(destination:tag:selection:label:) ?

    我使用以下 Swift 代码在我的 iPhone 应用程序中执行两件事 调用方法somethingElse 单击按钮时 将视图更改为SecondView Code struct PrimaryView View State var butt
  • 当前帧的绘制时间(以秒为单位),点后仅 2 位数字

    我找不到用点后仅两位数来绘制当前帧的时间 以秒为单位 的方法 我尝试了 drawtext 它做得很好 但是它给出了或 int 秒 或带有许多数字的浮点数 Use the eif绘制文本中的函数 这可用于计算表达式的值并将其打印为指定位数的整
  • Swift:尝试使用 UISlider 控制 AVAudioPlayerNode 中的时间

    我正在使用一个AVAudioPlayerNode附加到一个AVAudioEngine播放声音 为了获取玩家的当前时间 我正在这样做 extension AVAudioPlayerNode var currentTime TimeInterv
  • UIImageView|无法识别的选择器发送到实例 | Xcode 6.4 | iOS 8.4

    我是 Xcode 的新手 我的任务是将代码从iOS 6 1 至 8 4 但是有很多不推荐使用的方法 我解决了它们 我希望如此 但现在我遇到了一个新问题 我正在使用的代码是这样的 self clientImageView sd setImag
  • 从日期选择器中隐藏日期

    目前我正在使用本机日期选择器 但我想以一种只需要月份和年份的方式更改它 如何修改这个我的代码如下 Override protected Dialog onCreateDialog int id switch id case DATE DIA
  • 删除记录

    我有一个表 user logs 其中包含以下字段 username datetimelog 样本数据 user1 2011 06 28 08 49 01 user2 2011 06 28 08 59 38 user3 2011 06 28
  • Android 应用程序开发和 Web 服务器交互

    我刚刚学习 Android 开发 所以如果这本质上有点不对劲 请原谅 我想制作一个与我的网站上的数据库交互的应用程序 从某种意义上说 这两件事将互为补充 就这样 我正在尝试找出与服务器交互的最佳方式 我不想要一个在类似浏览器的环境中的应用程
  • 如何在开始时禁用绘图中的一行?

    我想显示这些行 但有些行被禁用 就像我正常显示它然后单击其名称来取消显示 禁用该行一样 我正在使用Python visible的属性trace as legendonly 使一条线按照您描述的方式运行 下面的代码生成一个figure10行
  • Spring-batch:如何在Spring Batch中使用skip方法捕获异常消息?

    我是spring批的新手 我的问题是如何使用 spring batch 中的skip方法捕获异常 据我所知 当Spring Batch中发生一些异常时 我们可以使用skip方法来跳过它们 但是如何使用skip方法获取异常消息呢 有人建议我使
  • 使用 LINQ 解析 Amazon Marketplace XML

    我有一系列来自 Amazon 的复杂 XML 文件 显示订单报告 XML 片段如下
  • Pandas 数学运算,以列值为条件

    我需要进行一个数学运算 该运算以第二列中的值为条件 这是设置 给定一个简单的数据框 df df pd DataFrame col1 A A B np nan D C col2 2 1 9 8 7 4 col3 0 1 9 4 2 3 In
  • 简单的JQuery嵌套列表遍历问题

    我有一个问题 我确信它非常简单 但我花了几个小时试图让它工作但无济于事 我试图在单击父列表项时显示嵌套列表 这是 JQuery 这是 HTML div ul li a href Database a li ul li a href view
  • 使用 case 语句创建触发器

    我有这两个表 USERS username role id COMMISSION RATES username commission rate users username是主键 commission rates username是外键 我
  • 使用 OpenCV 处理轮廓时错误:(-215:断言失败)npoints > 0

    当我运行这段代码时 import cv2 image cv2 imread screenshoot10 jpg cv2 imshow input image image gray cv2 cvtColor image cv2 COLOR B
  • 如何使用 Bootstrap 轮播显示上一张和下一张图像

    我正在寻找的效果如下图所示 它是一个包含 3 张图像的轮播 如何使 bootstrap 轮播显示不透明度为 0 7 的左右图像 以下是我的轮播模板 div class col md 10 center block img src img y
  • 如何通过测试正确设置和拆卸我的 pytest 类?

    我正在使用 selenium 进行端到端测试 但我不知道如何使用setup class and teardown class方法 我需要设置浏览器setup class方法 然后执行一系列定义为类方法的测试 最后退出浏览器teardown
  • Xpages 脱离服务器端缓存

    这个问题可能与非常具体的 Domino 版本有关 见下文 因此我从一些技术细节开始 有问题的服务器是虚拟化的 Windows 2008 R2 64 位计算机 多米诺骨牌发布是 IBM Domino r 服务器 64 位 适用于 Window