java - JMS多线程处理

标签 java multithreading jms jndi

我们有一个 Web 应用程序,每五秒生成一些 3-5 个并行线程来连接到 JMS/JNDI 连接池。我们等待第一批并行线程完成,然后再创建下一批并行线程。在此过程中,我们使用了大量的网络流量,并且连接线程只是挂起。最终我们手动调用运营团队来终止连接线程以释放连接。 我想问你的问题是:

  • 显然我们做错了什么,因为我们占用了连接资源
  • 当我们在发送第二批请求之前等待并行线程响应时,这种设计是否与行业最佳实践没有很好地产生共鸣?
  • 最后,对于这种情况(即连接到 JMS/JMDI 连接的多线程)您有什么选择和建议

感谢您的投入

最佳答案

您需要调整连接池参数。听起来您的服务只使用了 3-5 个连接,这对我来说似乎非常合理。 JMS 服务应该能够处理数千个连接。您的池的默认限制太低,或者您的 JMS 服务器配置的允许连接太少。

您确定这就是其他用户阻止的内容吗?我觉得很奇怪。

关于java - JMS多线程处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10942679/

相关文章:

java - 从 .class 文件创建实例时出现问题

python - SQLAlchemy 奇怪的线程行为

Java CompletableFuture.complete() block

java - 使用 JNI 从 JMS 调用 C++

connection - javax.jms.JMSException : Channel was inactive for too long: localhost/127. 0.0.1:7676

java - TomEE 嵌入式 ActiveMQ 使用 JMSContext : No ManagedConnections available within configured blocking timeout ( 5000 [ms] )

java - BrowserMobProxy 不会捕获 har 文件中的任何条目

java - 编写 MIDI 文件时如何更改乐器?

java - Java 应用程序的类型安全控制台配置

c++ - 这种优化是否是编译器错误?