2012-08-17 123 views
0

我们在生产中的应用在WebLogic中运行。这是一个基于spring和struts的web应用程序。需要db加载查询和通过GUI句柄即时重新加载的能力。一些现有的实用程序文件在春季没有配置为bean(不能在此处),并且有静态方法使用静态变量/常量来在每个静态方法中运行查询。我不明白Weblogic集群如果在应用程序启动并运行时必须重新加载数据库查询,将如何运行。换句话说,我们如何确保在所有JVM上重新加载对静态变量的查询,以便在任何节点上的下一次命中方法将获取新加载的查询的结果?的Weblogic集群

+0

请仔细标注标签。这不是[tag:cluster-analysis](又名:clustering,一种数据挖掘技术),但[tag:load-balancing]。 – 2012-08-17 17:13:52

回答

1

让我们看看这回答您的查询。

如果你有3台管理服务器,并且您已经在所有3个托管服务器部署在Spring应用程序,然后弹簧将弹出3个应用程序环境。 (每个托管服务器一个)。

他们不相互交谈,他们将自己的服务器中运行。他们将拥有自己的一组bean和他们自己的静态变量。

因此一台服务器上的重载将成为该服务器。您将不得不在所有三台服务器上重新加载静态内容,以便在整个应用程序中反映出来。

如果您希望所有人都可以重新加载,请使用属性文件(或所有3台受管服务器可以从同一位置共享的任何其他资源,例如管理服务器的JNDI,存储在文件系统上的属性文件,存储您在某些数据库表的查询,并从那里加载它 - 提供的所有应用程序指向同一个数据库)

0

每个WebLogic管理服务器将拥有自己的Spring应用程序上下文(如维韦克描述)。

确保每个JVM具有刷新的“db查询”集合的一种方式是使用共享的分布式缓存(例如ehcache),以便刷新数据而不管哪个节点进行刷新。分布式缓存和缓存复制是解决您问题的复杂解决方案。