我在使用WebSphere ApplicationServer 8在集群环境中运行的JEE6应用程序遇到问题。 搜索索引用于在UI中进行快速搜索(使用Lucene),在新数据到达相应的DB层之后,必须对其进行重新索引。为此,我们向应用程序发送JMS消息,然后刷新搜索索引。 问题是,消息只到达其中一个集群成员。所以只有搜索索引是最新的。在其他服务器上它仍然过时。
如何在所有集群成员中实现搜索索引的更新? 我可以在所有服务器上以某种方式收到消息吗? 或者有更好的方法吗?
答案 0 :(得分:0)
我找到了一个可能的解决方案: 通常,通过队列传递的JMS消息仅发送到其中一个集群成员。我找到了一种使用EJB计时器将信息传递给所有集群成员的可能方法。创建非持久性计时器应该在所有集群成员上调用回调方法。这可能是在所有集群成员上重新创建本地搜索索引的便捷方式。
非持久性ejb计时器非常重要,因为持久性计时器在集群上同步,并且只在其中一个集群成员上执行。