4

Java アプリケーション サーバーにメッセージ駆動型 Bean (MDB) があるとします。MDB は JMS キューからメッセージを受信し、それをメッセージ プロセッサに渡します。私の場合、メッセージ プロセッサは大規模な初期化を必要とする非常に重いオブジェクトであるため、各メッセージを処理するために新しいものを作成したくありません。代わりに、事前にメッセージ プロセッサのプールを作成し、それらを使用してメッセージを処理したいと考えています。

私の質問は、J2EE アプリケーション サーバーでこのプールを構築する「正しい」方法は何ですか? カスタム (非接続) オブジェクト プールを定義するためのサポートが組み込まれているサーバーはありますか? プールをシングルトンに詰め込んで最善を尽くす前に、このパターンに組み込まれているサポートを活用したいと思います。特に:

  • プールを定義/インスタンス化するにはどうすればよいですか?
  • プールへのアクセス方法を教えてください。JNDI?
  • アプリ サーバーによってどのような管理機能が提供されますか?

一般に、オブジェクト プールを実装する方法を知っています。私の質問は、主に J2EE アプリ サーバーでのプールの作成に関するものです。

私は Glassfish を使用する予定ですが、JBoss などでこれが簡単になる場合は柔軟に対応します。

ありがとう!

4

3 に答える 3

4

通常、EJB 自体は、ほとんどのアプリケーション サーバーによってプールされたオブジェクトとして管理されます。

アプリケーションを実装する最も明白な方法は、MDB 自体をメッセージ プロセッサとして使用し、アプリケーション サーバーの展開構成を使用してプーリングを構成することです。これはもちろん、実際に使用しているサーバーに固有のものです。

于 2009-08-17T15:48:59.810 に答える
1

Apache Commons Poolを試すことができます。これは、アプリケーション オブジェクトをプールするための一般化されたメカニズムです。

于 2009-08-17T15:36:00.893 に答える
0

Java 5 には、これを実行できるExecutor APIが付属しています。

于 2009-08-17T15:45:48.553 に答える