可以在多线程环境中使用单个QueueConnection。

时间:2015-08-06 00:25:43

标签: java multithreading java-ee jms websphere

我有一个在IBM WAS中配置的IBM QM。从 QCF创建单个 QueueConnection 并将其加载到内存中,以便多个线程可以访问同一连接(每个线程将创建此conn中的会话)以从Queue发送和接收消息这种方法存在性能问题。

  1. 当第一个线程正在使用连接时,其他线程是否会等待 直到第一次发送和接收。?
  2. 如果是这种情况,我可以为每个线程创建一个连接。这会影响性能。?
  3. 我有一个应用程序,其中并发请求数为每秒50。所以我必须处理性能问题。

    任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

JMS连接(即QueueConnections和TopicConnections)是线程安全的,可以由多个线程使用。 所有JMS构造"下面"不是连接(即Sessions,QueueSessions,TopicSessions),每个线程应该分配一个连接。

答案 1 :(得分:0)

每个线程应该共享QueueConnectionFactory而不是QueueConnection。

然后,线程将从工厂创建自己的QueueConnection。