2010-07-14 69 views
15

我们正在尝试提出一些接近WebLogic中JMS资源定位的简单而直接的模型(我知道这很有可能)。队列和主题可以轻松而直观地映射到运行在WebLogic服务器上的JMS服务器,但外部服务器和它们内部的资源似乎更加棘手。在Oracle WebLogic Server中定位外部服务器的常见做法是什么

在WLS 10.0和10.3中,首先,没有在JMS服务器旁定义外部服务器,而是作为JMS模块的成员。其次,与通过子部署针对JMS服务器的“非外部”资源不同,它们默认定位到它们定义的JMS模块的目标,即WLS群集或WLS服务器。

但是,通过高级定位,还可以在JMS服务器上定位外部服务器。这导致了一个关于外国/“非外国”JMS资源更为对称的模型。

Advanced Targeting http://dexter.xebialabs.com/Media/foreign_server_advanced_targeting.png

所以,问题是:

  1. 没有任何理由超越历史的偶然,为什么国外的资源和“非外交”资源目标是如此的不同(国外资源在默认情况下在WLS群集或WLS服务器与JMS服务器上的非外部资源)?
  2. 有针对外国和非外国资源的常见或最佳做法吗?
  3. 有没有什么原因让人不想通过子部署在JMS服务器上定位外部服务器?

在此先感谢!

安德鲁·菲利普斯

+1

很好的问题。这个Weblogic服务器是一个神秘的设备,只有它的力量才能超越! – 2010-12-01 21:15:34

回答

3

1)过去,外部JMS服务器被定义为独立组件,类似于连接器,消息传递桥等。这些组件(历史上)直接针对应用服务器或集群,而不是像JMS服务器这样的中间组件。

随着更高版本的发布,Oracle试图通过统一的方式合并内部和外部JMS。但是,目标选项保持不同。为了提供JMS部分的灵活性,引入了子部署。为了保持一致性,Oracle似乎已将子部署扩展到外部服务器,这使事情变得相当复杂/混乱。

我不会把它出事,因为新版本保持一致,以这种设置:)

2)对于部署在集群的应用程序,你需要有对整个群集定义一个JMS模块序。连接工厂的多个定义会使JMS负载平衡倾斜。

我们的最佳实践主要围绕为每个群集创建单个JMS模块(或应用程序服务器,如果未群集),然后在同一模块内创建外部服务器和weblogic JMS队列/连接工厂。此外,为您的子部署和JMS模块提供良好的命名约定还有很长的路要走。一旦你运行> 16轮并发的MDB

3)外国服务器(尤其是与IBM MQ)可以有很多的复杂问题。我们避免了国外服务器 - > JMS服务器 - >管理服务器,以减少抽象/复杂的附加层序,以保持配置简单。您还可以减少您的国外服务器的异常由一个神秘的JMS服务器异常被屏蔽的风险(我没有这个任何证据)。

一个队友曾经建议,国外服务器 - >应用程序服务器的设置是更好的性能,但我们有Oracle的A-小组确认,这只是一个逻辑/审美变化,不应真正的问题。

希望有帮助!

2

虽然我不是这方面的专家,我对这个主题的理解一直是这样的: 之本是分离“是什么”和“如何”问题纳入JMS模块和JMS - 服务器。 JMS模块管理消息和目的地,而JMS服务器管理这些消息如何存储和传送。

说到JMS的外部服务器,可能会变得模糊不清。资源仅仅是一个目的地,'理论上'如何'是外部服务器的关注点。

相关问题