0

我有两个集群在一起并复制会话的 Oracle 应用服务器 (OAS) 实例。每当我通过终止进程来终止其中一个实例时,另一个实例就会启动并包含该会话。一切都按预期工作。如果我正常关闭 OAS 的一个实例(使用 opmn stopall),则会触发 HttpSessionDestroyedEvent 事件并删除信息,从而导致应用程序无法正常故障转移。这是我第一次使用集群环境,我很好奇这是否常见。我知道并期望在服务器实例停止时在非集群环境中触发 HttpSessionDestroyedEvent 事件,但这里似乎不正确。如何在一台服务器上执行任何类型的维护?我正在使用 Spring Framework,这是 HttpSessionDestroyedEvent 事件的来源。

4

1 回答 1

0

这似乎是集群和 Web 服务器的常见问题。基本上,当属于集群的单个节点正常关闭时,该节点将为属于该节点的所有会话触发会话销毁事件,即使集群中启动并运行了更多节点。这里还有一些描述我遇到的同样问题的链接。

Tomcat 问题

JBoss 问题

一种解决方法是在您侦听会话破坏事件的任何位置加载包含关闭标志的属性文件(请参阅 JBoss 链接)。这样做的一个缺点是系统管理员必须记住在重新启动之前和之后更新属性文件。

于 2009-02-24T12:48:33.280 回答