当前位置: 首页 > 知识库问答 >
问题:

如何在不重新启动http任务的情况下从文件系统“清理”序列化文件

聂华翰
2023-03-14

我们有一个 XPages 应用程序,并针对此特定应用程序序列化磁盘上的所有页面。我们已经使用了 gzip 选项,但似乎只有在停止或重新启动 http 任务时,才会从磁盘中删除序列化文件。

由于此应用程序由来自全球不同地方的许多不同客户使用,我们尽量避免重新启动服务器或http任务,但缺点是序列化文件永远不会被删除,因此即使gzip序列化文件不是那么大,我们迟早会遇到磁盘空间问题。

第二个问题是超文本传输协议任务需要很长时间才能停止,因为它必须删除所有序列化文件。

有没有办法让多米诺服务器“清理”旧的/未使用的序列化文件,而无需重新启动超文本传输协议任务?

目前我们实现了一个操作系统脚本,它可以清理超过两天的序列化文件,这很好,但我更喜欢多米诺骨牌中的解决方案。

提前感谢您的回答/建议!

雷诺

共有1个答案

曾绯辞
2023-03-14

我相信httpSessionId是用来在磁盘上存储文件的。您可以尝试以下方法:

  1. 将xsp.persistence.dir.xspsstate更改为上更友好的位置(即/temp/xspstate)
  2. 在XPage应用程序中注册SessionListener
  3. 在SessionListener的sessionDestroyed方法中,递归搜索文件夹,找到与sessionId匹配的文件或文件夹,然后删除

在侦听器中调用sessionDestoryed方法时,应该删除所有文件锁。还要注意,目前为止,用户注销后不会立即调用seesionDestroyed方法(请参阅我的问题:SessionListener sessionDestroyed-not called)

希望这有所帮助...

 类似资料:
  • 问题内容: 如何在不重新启动servlet容器的情况下刷新Spring配置文件? 我正在寻找JRebel以外的解决方案。 问题答案: 对于那些最近在这上面绊脚石的人来说,解决此问题的当前和现代方法是使用Spring Boot的Cloud Config。 只需添加注释你刷新豆类和你的主/配置。 因此,例如,以下Controller类: 在Spring Boot Actuator上(通过HTTP端点或

  • 我正在使用Jenkins和Ant将我的war文件从一台服务器部署到其他服务器。第一次,它成功地将war文件部署到相应的tomcat服务器,并且运行良好。但是第二次和之后,war文件被删除,Tomcat没有删除相应的“unwar”文件夹,因为Tomcat当前正在运行。所以我无法部署war文件。 我还尝试将添加到文件中。但是,它显示以下错误: 原因:组织。科德豪斯。货物容器公猫内部的TomcatMan

  • 当我在一个节点上做了一个紧凑的工作时,它会抛出以下例外情况:

  • 问题内容: 我的速度宏正在缓存中,我不希望它们存在……至少不在开发过程中。 我在属性文件中设置了以下属性… …但这似乎并没有解决问题 使用速度属性,如何配置速度以不缓存宏? (我正在使用速度1.6.4) 编辑: 我不认为这条线… …与速度有关 问题答案: 我一直在NVelocity(速度的C#端口)遇到相同的问题。深入研究它们的来源,我发现全局名称空间中宏的重新加载由以下属性控制。 我没有用速度进

  • 我有一个kubernetes集群,安装了保险库(通过头盔图表)。 我想将机密从vault填充到pod中的文件(例如nginx),并每5分钟刷新一次机密。 我使用以下配置对其进行了测试(使用适当的vault策略/后端身份验证): namespace.yaml Service_account.yaml nginx-deployment.yaml 当我将此配置应用于kubernetes集群时,将创建部署

  • 我有一个批处理文件,其中包含以下代码以停止和启动SQL报告服务: 我已经设置了每天运行的计划任务,它目前以SYSTEM的形式运行,并设置了最高权限。我在操作上设置了文件夹中的开始选项,通常一切似乎都设置正确。但是当我运行任务时,似乎什么都没有发生,它说任务已经运行,但我看不到服务已经按预期重新启动。 有人能告诉我我错过了什么吗?