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

Can a single QueueConnection be used in multithreaded environment.?

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

  1. 当第一个线程正在使用连接时,其他线程是否会等待 直到第一次发送和接收。?
  2. 如果是这种情况,我可以为每个线程创建一个连接吗?这会影响性能吗?

我有一个应用程序,其中 no.of 并发请求为每秒 50 个。所以我必须处理性能问题。

如有任何帮助,我们将不胜感激。

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

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

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