JMS连接池或会话池

时间:2012-07-02 16:38:33

标签: java session connection jms connection-pooling

我对JMS连接池和JMS会话池之间感到困惑。

我有一个Java应用程序,它有大约20个线程处理从供应商产品接收的消息。在推送到JMS主题(所有20个线程的相同主题)之前,每个线程都会对消息进行一些处理。

我希望确保没有线程等待免费的JMS连接,因为性能至关重要。但是,当我查看JMS连接工厂时,我看不到为JMS连接配置池大小的任何方法。

现在我真的很困惑。是我应该汇集的JMS会议吗?

对此非常感激的任何帮助

由于 乔

2 个答案:

答案 0 :(得分:6)

来自the J2EE 6 api javax.jms.Connection

  

通常表示客户端和服务提供商软件之间的开放TCP / IP套接字。

  

Session对象是用于生成和使用消息的单线程上下文。

会话(或会话池)发生在连接的上下文中。

您可能希望根据在特定技术堆栈,框架和应用程序的上下文中从头开始创建这些资源的成本来确定是否汇集Sessions,Connections或两者都不会。

我的资源:

答案 1 :(得分:1)

我知道PooledConnectionFactory类中的一个方法,您可以使用该方法设置最大连接数。方法是setMaxConnections。 这是你问题的部分答案。