2012-06-08 90 views
0

我们有一个Web应用程序每五秒钟生成3-5个并行线程以连接到JMS/JNDI连接池。在创建下一批并行线程之前,我们先等待第一批并行线程完成。在这个过程中,我们正在使用大量的网络流量,连接线程只是挂起。最后我们手动调用操作团队来终止连接线程以释放连接。 问题我想问你的是:JMS多线程处理

  • 显然,我们做错了什么,因为我们举行了连接资源
  • 当我们等待并行线程发送第二批的请求之前做出响应,难道这样的设计不与行业最佳实践产生共鸣?
  • 最后什么是此方案即连接到JMS/JMDI连接

感谢您的输入

回答

1

您需要调整您的连接池参数多线程,你有选择和建议。这听起来像是你的服务只用了3-5个连接,这对我来说似乎很合理。 JMS服务应该能够处理数千个连接。您的池默认限制太低,或者您的JMS服务器配置的连接数太少。

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

+0

JNDI池中的默认设置是35个并发连接。为了回答问题的第二部分,我们做了一些诊断,以使这个Web应用程序隔离连接。 –

+0

也许你的应用程序没有正确释放连接? –

+0

谢谢我们确实检查了连接正在关闭。你是否在创建3-5个线程并同时访问连接池时看到任何问题? –

0

我几乎可以肯定,你会好起来的单连接工厂。只要确保正确清理/关闭会话。我们使用Spring的SingleConnectionFactory。