代码之家  ›  专栏  ›  技术社区  ›  Dean J

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

  •  0
  • Dean J  · 技术社区  · 15 年前

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

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

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

    编辑 : 最初的开发人员只是编写了一个单例,其中包含一个哈希映射,以作为有问题的缓存。轻量级和(以前)工作只是为了满足需求。它缓存从六个或七个Web服务中提取的内容,并保持指定的时间。

    编辑 : 整个应用程序有三页,所以优雅的解决方案可能是最轻的解决方案。

    2 回复  |  直到 13 年前
        1
  •  1
  •   Romain Hippeau    15 年前

    由于缓存是应用程序的内部缓存,因此需要提供一个接口来清除应用程序中的缓存。Quotidian说要使用JMS队列。这将不起作用,因为假设您有集群的MQ队列,只有一个实例会接收消息。

    如果您希望重用相同的实现,那么实现这一点的唯一方法是编写一些您可以在实例级别与之交互的JMX。

    如果没有,您可以使用内置的was缓存(启用了jmx)或使用分布式缓存(如ehcache)。

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

        2
  •  1
  •   Quotidian    15 年前

    我倾向于使用 JMS 排队等待。

    推荐文章