假设我在Java应用程序服务器中有一个消息驱动bean(MDB)。 MDB从JMS队列接收消息并将其传递给消息处理器。在我的例子中,消息处理器是一个非常重的对象,需要大量的初始化,所以我不想创建一个新的来处理每个消息。相反,我想提前创建一个消息处理器池,并使用它们来处理消息。
所以,我的问题是:在J2EE应用服务器中构建此池的“正确”方法是什么?是否有任何服务器内置支持定义自定义(非连接)对象池?我想利用这种模式的任何内置支持,然后我将池塞进一个单独的并希望最好。特别是:
我知道如何实现一般的对象池。我的问题主要是关于在J2EE应用服务器中创建一个池。
我打算使用Glassfish,但如果JBoss或其他东西可以让我更容易,我就会灵活。
谢谢!
答案 0 :(得分:4)
EJB本身通常由大多数应用程序服务器作为池化对象进行管理。
实现应用程序最明显的方法是使用MDB本身作为消息处理器,然后使用应用程序服务器部署配置配置池,这当然是特定于您实际使用的服务器。
答案 1 :(得分:1)
您可以尝试Apache Commons Pool,它是用于汇集应用程序对象的通用机制。
答案 2 :(得分:0)
Java 5带有可以执行此操作的Executor API。