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 回答