0

我在使用 WebSphere ApplicationServer 8 的集群环境中运行 JEE6 应用程序时遇到问题。搜索索引用于在 UI 中进行快速搜索(使用 Lucene),必须在新数据到达相应数据库后重新编制索引层。为此,我们向应用程序发送 JMS 消息,然后搜索索引将被刷新。问题是,消息只到达集群成员之一。所以只有那里的搜索索引是最新的。在其他服务器上,它仍然过时。

如何实现搜索索引在所有集群成员处更新?我可以在所有服务器上以某种方式接收消息吗?还是有更好的方法来做到这一点?

4

1 回答 1

0

我找到了一个可能的解决方案:通常,通过队列传递的 JMS 消息仅发送给集群成员之一。我找到了一种可能的方式来获取所有集群成员的信息,使用 EJB 计时器。创建一个非持久定时器应该调用所有集群成员的回调方法。这可能是在所有集群成员上重新创建本地搜索索引的便捷方式。

成为非持久性 ejb 计时器很重要,因为持久性计时器在集群上得到同步,并且只在集群成员之一上执行。

于 2013-10-31T15:47:14.553 回答