MDB 必须等待消息到达,所以它必须做一些“等待”然后阻塞正在运行的线程。
那么,在EJB容器中,如何管理MDB,是否会为一个MDB创建一个线程?
每个 EJB 和 MDB 都是池化的,因为消费消息仍然有效:
... JMS 消息是同时处理的。也就是说,虽然每个 bean 实例一次处理一条消息,但 EJB 容器负责创建足够的 bean 实例来处理给定时刻的消息负载。在 WebLogic 中,您可以设置容器创建的 bean 实例的初始数量和最大数量。有关详细信息,请参阅 @MessageDriven 注释。
来源:http ://docs.oracle.com/cd/E11035_01/workshop102/ejb/messagedriven/conGettingStartedWithMDBs.html