上一主题: MOM 与收集器的连接限制下一主题: 最大化群集容量以支持大型环境


调整客户端消息队列

对于到其每个客户端的套接字连接,每个企业管理器(独立、收集器、MOM 和 CDV)都有一个传出消息队列。 企业管理器使用传出消息队列来缓冲发送到其客户端的数据。 客户端包括 Workstation、命令行 Workstation 实例、WebView 以及 MOM 或 CDV(当企业管理器是收集器时)。

在少数情况下,调整这些消息队列可以提高客户端连接可伸缩性。 CA Technologies 建议在调整消息队列之前咨询 CA Support以提高客户端连接可伸缩性。

IntroscopeEnterpriseManager.properties 文件中的 transport.outgoingMessageQueueSize 属性限制出站消息队列的大小。 此属性值是消息数,而不是消息内容的大小。 增加 transport.outgoingMessageQueueSize 值也会增加企业管理器需要的堆内存。

某个固定数量的传出交付线程为所有传出消息队列提供服务。 IntroscopeEnterpriseManager 属性文件中的 transport.override.isengard.high.concurrency.pool.max.size 属性确定可用传出交付线程的数量。

如果交付线程数少于活动客户端连接数,则传出消息必须在传出消息队列中等待,因此队列可能会达到其容量。 如果传出消息队列中没有可用空间,则企业管理器无法将请求的数据发送回客户端。 客户端可能看起来已挂起。 通过增加队列大小和线程池大小,可以提供更多容量,并且能够解决此问题。

在大量客户端各自都请求大量数据的环境中,可能会出现此问题。 仅在经常出现这种情况的环境中尝试增大消息队列。

这些症状表示存在传出消息队列问题:

在经常出现传出消息队列症状的群集中的所有收集器和 MOM 上调整传出消息队列属性。

请执行以下步骤:

  1. 在每个收集器和 MOM 上,配置 IntroscopeEnterpriseManager.properties 文件。
    1. 转到 <EM_Home>/config 目录并打开 IntroscopeEnterpriseManager.properties 文件。
    2. 添加传出消息队列属性,并将值设置为 6000。

      transport.outgoingMessageQueueSize=6000

    3. 仅在 MOM 上,取消注释 transport.override.isengard.high.concurrency.pool.max.size 属性,并将值设置为 10。

      transport.override.isengard.high.concurrency.pool.max.size=10

    4. 保存并关闭文件。
    5. 重新启动所有收集器和 MOM。
  2. 根据需要,将 JVM 堆大小增加到适合您环境的大小。