15

We’re trying to come up with something approaching a simple and straight-forward model for targeting of JMS resources in WebLogic (fat chance, I know). Queues and Topics can easily and quite intuitively be mapped to JMS servers running on WebLogic servers, but Foreign Servers and the resources within them seem to be a bit more tricky.

In both WLS 10.0 and 10.3 Foreign Servers are, firstly, not defined next to JMS Servers but as members of a JMS Module. Secondly, they are targeted by default to the target of the JMS Module they are defined in, i.e. a WLS Cluster or WLS Server(s), unlike “non-foreign” resources which are targeted at JMS Servers via Subdeployments.

However, with Advanced Targeting it is also possible to target Foreign Servers at JMS Servers. This results in a model that is much more symmetrical with respect to foreign/”non-foreign” JMS resources.

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

So, the questions are:

  1. Is there any reason beyond historical accident why Foreign Resource and “non-foreign” resource targeting is so different (foreign resources by default at a WLS Cluster or WLS Server(s) vs. non-foreign resources at JMS Servers)?
  2. Is there any common or best practice for targeting Foreign and non-foreign resources?
  3. Are there any reasons why one would not want to target Foreign Servers at JMS Servers via Subdeployments?

Thanks in advance!

Andrew Phillips

4

2 に答える 2

3

1) 外部 JMS サーバーは、コネクタ、メッセージング ブリッジなどと同様に、スタンドアロン コンポーネントとして定義されていました。これらのコンポーネントは、(歴史的に) JMS サーバーのような中間コンポーネントではなく、アプリケーション サーバーまたはクラスターを直接対象としていました。

それ以降のリリースでは、Oracle は、内部および外部 JMS の両方をユニバーサルな傘の下にマージしようとしました。ただし、ターゲット オプションは異なります。JMS 部分に柔軟性を持たせるために、サブデプロイメントが導入されました。オラクルは、一貫性のために外部サーバーへのサブデプロイメントを拡張しているようで、物事が非常に複雑/面倒になっています。

新しいリリースはこのセットアップに準拠し続けているので、私はそれを偶然とは呼びません:)

2) クラスタ全体にデプロイされたアプリケーションの場合、クラスタ全体に対して単一の JMS モジュールを順番に定義する必要があります。接続ファクトリーの定義が複数あると、JMS ロード・バランシングが歪められます。

私たちのベスト プラクティスは、クラスタ (またはクラスタ化されていない場合はアプリ サーバー) ごとに 1 つの JMS モジュールを作成し、同じモジュール内に外部サーバーと weblogic JMS キュー/接続ファクトリの両方を作成するという標準を中心にしています。また、サブデプロイメントと JMS モジュールに適切な命名規則を使用することも大いに役立ちます。

3) 外部サーバー (特に IBM MQ の場合) では、16 を超える同時 MDB を実行すると、多くの複雑な問題が発生する可能性があります。外部サーバー -> JMS サーバー -> 管理対象サーバーを回避して、構成をよりシンプルに保つために抽象化/複雑さの追加レイヤーを削減しました。また、外部サーバーの例外が暗号化された JMS サーバーの例外によってマスクされるリスクも軽減されます (これについての証拠はありません)。

チームメイトはかつて、Foreign Server -> Application Server のセットアップの方がパフォーマンスが高いと提案しましたが、Oracle の A チームに、これは論理的/美的変更にすぎず、実際には問題にならないことを確認してもらいました。

それが役立つことを願っています!

于 2011-03-21T20:45:18.797 に答える
2

私はこの分野の専門家ではありませんが、このトピックに関する私の理解は次のとおりです。基本は、「何」と「どのように」の関係を jms-modules と jms-servers に分離することでした。JMS モジュールはメッセージと宛先を管理し、jms-server はこれらのメッセージの保存方法と配信方法を管理します。

JMS外部サーバーに関しては、おそらくこれは曖昧になります。リソースは単なる宛先であり、「方法」は理論的には外部サーバーの関心事です。

于 2010-12-03T02:39:42.363 に答える