如何在WAS集群中的两个不同服务器上触发代码?

时间:2010-06-08 15:36:38

标签: java websphere

我在Web应用程序中有一个重置缓存的管理页面,但它只会重置当前JVM上的缓存。

Web应用程序作为群集部署到两个WAS服务器。

我可以优雅地在每台服务器上使用“clear cache”按钮触发两个JVM上的方法吗?

修改的: 原始开发人员只是编写了一个单独的控件,其中包含一个HashMap作为缓存。轻量级(以前)工作正常,符合要求。它会缓存从六个或七个Web服务中提取的内容达到指定的时间。

修改的: 整个应用程序有三页,因此优雅的解决方案可能是最轻的解决方案。

2 个答案:

答案 0 :(得分:1)

我倾向于使用JMS队列来做到这一点。

答案 1 :(得分:1)

由于缓存是应用程序的内部,因此您需要提供一个界面以在应用程序中清除它。 Quotidian说要使用JMS队列。这是行不通的,因为假设您有集群MQ队列,只有一个实例会接收该消息。

如果要重用相同的实现,那么执行此操作的唯一方法是编写一些可以在实例级别与之交互的JMX。

如果没有,您可以使用内置的WAS缓存(启用JMX)或使用ehcache之类的分布式缓存。

过去我创建了一个子类LinkedHashMap,它使用JBOSS JGroups链接到网络上的所有实例。当然重新发明轮子总是很痛苦。