5

Weblogic が特定の EJB に対してデフォルトで使用する、連結されたオブジェクトの最適化を無効にする方法はありますか?

編集: いくつかのコンテキスト:

クラスタの 1 つのノード内で実行されるスケジューラ サービスがあります。これは歴史的な理由によるものであり、現時点では変更できません。

このサービスは EJB を呼び出します。これらの呼び出しの負荷を分散したいと考えています。残念ながら、現時点では、質問に記載されている最適化のため、スケジューラ サービスをホストするノードですべての呼び出しが実行されます。

カスタム負荷分散クラスをコーディングすることを考えていましたが、この最適化は負荷分散ステップが発生する前に行われているようです。

4

4 に答える 4

1

リモート EJB を呼び出そうとしていると仮定すると (ローカル ejbs の負荷分散は、Patrick が述べたような間接的なトリックによってのみ取得できます)、特定のサーバーの代わりにクラスターのアドレスを使用して、新しい InitialContext を作成する必要があります。この新しい IC は、外国のクライアントであるかのようにスタブを提供し、それらと同じ負荷分散戦略に従います。

残念ながら、これは EJB3 インジェクションが機能しないことを意味します。ルックアップは自分で行う必要があります。これは純粋な憶測ですが、クラスター IC から取得できるスタブがシリアル化可能である可能性があります。つまり、それらをバインドし、後で @Resource を使用して注入することが可能になる場合があります。

于 2009-02-26T00:13:56.323 に答える
0

クラスタにはノードがいくつありますか?スケジューラサービスがデプロイされたノード以外のノードにEJBをデプロイすることを検討しましたか?

于 2008-10-26T09:26:21.557 に答える
0

weblogic の根性にはあまり詳しくありませんが、その資料を読むと、ある程度の策略がなければできないと思います。

ただし、連結オブジェクトの最適化に従わない EJB の前に JMS (MDB) ファサードを配置できるようです。

また

スケジューラがサーブレット ベースの場合、コンテナ内の別の Web アプリケーションにデプロイして、EJB クラスタへの呼び出しを実行させることができます。

于 2008-10-21T17:07:43.613 に答える