【发布时间】:2013-01-29 05:43:03
【问题描述】:
我们正在努力寻找在 weblogic 上创建单例的良好解决方案。
现在我们有一个既部署在集群环境中又部署在单个服务器中的耳朵。耳朵内是一个持有某种状态的单身人士。在 2 台服务器上复制该状态会导致不正确的行为。目前,只能通过部署为 max 1 的 MDB 访问该单例。该 MDB 正在侦听一个主题。该主题未分发,这导致我们仅在一台服务器上拥有它,但会导致我们不喜欢的部署警告。
我们考虑了几个解决方案:
- Weblogic 的 SingletonService。工作正常,但它只在集群上工作,导致应用程序的单服务器版本和开发人员沙箱出现问题。
- 为单例和周围代码创建一个单独的耳朵,并将其部署在单独的托管服务器上。这有望按要求工作,但需要大量工作才能将我们的单例与周围代码分离,并要求我们向远程访问公开大量功能。
- 使单例无状态删除单例要求。应该可以工作,但同样需要大量工作
还有其他方法可以解决这个问题吗?也许是一些 JMS 技巧?
【问题讨论】:
-
澄清:单例是一个事件处理器,其逻辑如下:“每满足 baz 的第 3 个柱执行 foo。计数是它成为单例的要求。foo 和 baz 都需要与系统其他部分的交互
标签: jakarta-ee singleton jms weblogic