【问题标题】:Valid reason for creating a JMS connection and not starting it?创建 JMS 连接但不启动它的正当理由?
【发布时间】:2013-12-11 00:52:41
【问题描述】:

我们的一台 EMS 服务器面临性能问题,因此开始分析与服务器建立的连接。

目前,一位用户使用 isStarted=false 与我们的服务器创建了 142 个连接,其中大约 50% 的连接是在一个多月前创建的。

创建连接而不启动它的正当理由是什么?

EMS Java API 文档只这么说:

public boolean isStarted()

Indicates whether or not the connection as been started by the client.

Returns:
    true if the connection has been started, false otherwise.

感谢您对此主题的任何进一步解释!

【问题讨论】:

  • 很可能是一个错误。我不知道创建连接然后不启动它的任何用例

标签: java jms tibco tibco-ems


【解决方案1】:

可能应用程序只发送消息而不接收任何消息。即使连接停止,也可以发送消息。 JMS 1.1 规范第 4.3.3 节第 4 段说A MessageProducer can send messages while a Connection is stopped.。您可能需要检查应用程序以了解这一点。

【讨论】:

  • 那么在这种情况下停止连接有什么好处?
  • 我觉得没什么优势。
  • 进一步的观察是,没有一个停止的连接有任何消费者或生产者,但每个连接的会话数介于 21 和 0 之间。为什么连接上有会话但没有消费者或生产者?
  • 您需要查看应用程序以了解此行为。应用程序可能正在创建消费者/生产者的过程中,或者已关闭消费者/生产者但尚未关闭会话。
  • 会话计数和连接的无消费者/生产者现在保持不变,6 小时后。据我所知,会话不再使用时应该关闭。v 如果没有消息发送,为什么要保持连接打开?
猜你喜欢
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多