如何访问.net中的activemq统计插件

2023-12-03

我正在尝试访问 activemq 统计信息http://activemq.apache.org/statisticsplugin.html in c#

这就是我到目前为止所拥有的。我无法得到消费者的回复。我可以在监控网站上查看队列的计数增加。

public class Statistics 
{
    private readonly string queueName = string.Empty;
    private readonly string queueToMonitor = string.Empty; 
    private readonly IConnectionFactory connectionFactory;
    private readonly IConnection connection;
    private readonly ISession session;
    private readonly IMessageProducer producer;
    private readonly ActiveMQQueue queue;


    public Statistics(string qName, string brokerUri, string queueToMon)
    {
        this.queueName = qName;
        this.queueToMonitor = "ActiveMQ.Statistics.Destination." + queueToMon; 
        this.connectionFactory = new ConnectionFactory(brokerUri);
        this.connection = connectionFactory.CreateConnection();
        this.connection.Start();
        this.session = connection.CreateSession();

        queue = new ActiveMQQueue(qName);
        producer = session.CreateProducer(queue);

    }

    public void GetStats()
    {
        try
        {
            var statusQueue = session.CreateTemporaryQueue();
            var consumer = session.CreateConsumer(statusQueue);
            ActiveMQQueue query = new ActiveMQQueue(queueToMonitor);

            var msg = session.CreateMessage();
            msg.NMSReplyTo = statusQueue;
            producer.Send(queue, msg);

            var reply = (ActiveMQMapMessage)consumer.Receive();

            if (reply != null)
            {
                var test = reply.Content.ToString(); 
            }
         }
        catch (Exception e)
        {
            var t = e.Message + " " + e.StackTrace;
        }

    }
}

您正在将消息发送到错误的队列。您需要将消息发送至ActiveMQ.Statistics.Destination.QueueToMonitor目的地。我重写了您的 GetStats() 函数以表明它有效。关键的变化是生产者将消息发送到哪个目的地。

public void GetStats()
{
    try
    {
        IDestination statusQueue = session.CreateTemporaryQueue();
        IMessageConsumer consumer = session.CreateConsumer(statusQueue);
        IDestination query = session.GetQueue(queueToMonitor);
        IMessage msg = session.CreateMessage();
        IMessageProducer producer = session.CreateProducer(query);

        msg.NMSReplyTo = statusQueue;
        producer.Send(msg);

        IMapMessage reply = (IMapMessage) consumer.Receive();

        if(reply != null)
        {
            IPrimitiveMap statsMap = reply.Body;

            foreach(string statKey in statsMap.Keys)
            {
                Console.WriteLine("{0} = {1}", statKey, statsMap[statKey]);
            }
        }
    }
    catch(Exception e)
    {
        var t = e.Message + " " + e.StackTrace;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何访问.net中的activemq统计插件 的相关文章

  • android 13.0 framework禁用系统所有通知

    1 概述 在13 0的系统rom产品开发中最近公司项目要求 禁用系统所有通知 不需要在下拉状态栏显示通知功能实现 要控制系统通知的开关功能 需要屏蔽系统通知 而系统通知都是由NoticationManagerServices java来管理
  • 如何使用 @JmsListener 暂停和开始消费消息

    我使用的是 Spring Boot 版本 1 3 2 我正在使用 JmsListener 来使用来自 activemq 的消息来获取我使用 JmsTemplate 创建 生成的消息 这是代码 JmsListener destination
  • 如果代理不可用,ActiveMq 不会停止

    停止 Apache ActiveMQ 5 15 6 时出现以下错误 设置createConnector false 因为不需要默认的 JMX 连接 注意 启动ActiveMQ activemq admin bat start 停止Activ
  • 是否可以镜像 ActiveMQ 中的单个队列?

    我在生产系统中运行 ActiveMQ 我们的一些队列数量非常多 有些队列数量非常少 我有兴趣镜像低容量队列之一 以便我可以围绕收到的消息构建非正式的监视服务 很遗憾 我能找到的唯一文档似乎暗示镜像队列是全有或全无 您要么为您拥有的每个队列创
  • Apache Camel 到底是如何处理 JMSReplyTo 的?骆驼什么时候隐式使用目的地?

    使用 spring camel 我构建了一条从 JMS 主题进行消费的路由 预计为每个输入消息设置 JMSReplyTo 将消息分割成更小的块 将它们发送到 REST 处理器 然后聚合答案并应该生成发送到 JMSReplyTo 指向的目的地
  • 如何在队列上设置 ActiveMQ redeliveryPolicy?

    如何在队列上的 ActiveMQ 中设置 redeliveryPolicy 1 在文档中 请参阅 activeMQ 重新传送 http activemq apache org redelivery policy html 说明您应该在 Co
  • 无法访问在 docker 容器中运行的 activemq 实例的管理控制台

    我已经创建了 dockerfile FROM ubuntu latest RUN apt get update apt get y upgrade RUN apt get y install curl RUN apt get y insta
  • 在哪里更改 activemq 中的预取值

    我读过有关的文档prefetch buffer 根据我的理解如果我分配Prefetchvalue 1给消费者A Activemq一次向A推送1条消息 一旦A向activemq发送确认 则只有activemq向A推送另一条消息 我的疑问是 我
  • 将 ActiveMQ 嵌入 JBoss 7

    我们以前用过ActiveMQ 5 5作为嵌入式服务JBoss 5 通过 ActiveMQ 资源适配器 以便 JMS 代理始终在与客户端应用程序本身相同的 JVM 上的本地主机上运行 我们按照此说明进行配置 http activemq apa
  • ActiveMQ NMS C# 对象消息使用什么序列化方法?

    我计划使用 Apache NMS 进行 ActiveMQ 消息传递 并且想知道我发送的对象将使用什么序列化方法 XML 二进制 什么控制序列化以及如何自定义它 有人有使用 C 对象执行此操作的经验吗 您知道有哪些陷阱吗 IObjectMes
  • ActiveMQ 中的只读 Web 控制台访问

    我正在使用 ActiveMQ 5 10 并且想创建一个通过 Web 控制台具有只读访问权限的用户 红帽发布本文 https access redhat com solutions 389323 提到由于 ActiveMQ 中的错误 它并不是
  • 网络故障后重新连接ActiveMQ服务器

    我们正在使用 ActiveMQ 5 8 0 通过 TCP 将 Java 应用程序连接到另一个系统 请求 回复 与对临时队列的回复同步 与我们的客户端及其相应部分配合良好 但我们不确定如何处理 异常 情况 例如短暂的网络故障 我们正在测试应用
  • 哪种嵌入式消息传递系统 -> ActiveMQ 或 HornetQ [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我希望得到一些关于这两个消息系统中哪一个的一般性指示和意见 更容易管理 需要了解和避免的陷阱或神奇的东西
  • 我如何向 Activemq 发送消息

    我从来不工作JMS 最近我下载了Activemq并更改端口号61616 to 61617 in all conf activemq xml文件 我从命令提示符运行以下命令并在浏览器上打开控制台页面 C Users Infratab Bang
  • ActiveMQ NMS:当代理关闭时,connection.start() 会因故障转移协议而挂起

    我有使用 nms activemq 1 5 0 的 C 应用程序 当我的应用程序启动时 它尝试使用故障转移协议连接到代理 我有两个主从配置的代理 如果两个经纪人都关闭了 我的应用程序就会因为以下原因而陷入等待状态 connection st
  • 从 HTTP 端点发送消息到 JMS

    我正在尝试使用骆驼路由 它将接受 http 端点上的有效负载 然后将该有效负载写入 JMS 队列 到目前为止我所拥有的路线如下 但是一条空消息被传递到 jms 队列 消息到达那里 但没有正文 路线如下
  • 各个队列是否可以有死信队列

    目前 我的 ActiveMQ 服务器中有一个名为hello world 每当消息处理失败时 ActiveMQ 都会创建一个名为的默认目录ActiveMQ DLQ 是否可以将该名称更改为类似的名称hello world DLQ 原因是我将来可
  • MongoDB 架构设计 - 实时聊天

    我正在启动一个项目 我认为该项目特别适合 MongoDB 因为它提供的速度和可扩展性 我目前感兴趣的模块是与实时聊天有关的 如果我要在传统的 RDBMS 中执行此操作 我会将其分为 频道 一个频道有很多用户 用户 一个用户有一个频道但有多条
  • Apache Camel/ActiveMQ 优先级路由

    我有两个具有相同消费者的 AMQ 队列 第一个队列 Q1 处理 97 的消息 另一个队列 Q2 仅处理 3 问题是 Q2 中的消息需要在排队后立即处理 所以我的问题是 当第二季度有消息可用时 我需要以某种方式暂停第一条路线以吸引其消费者 a
  • ActiveMQ 内存消耗通过屋顶(页面文件)...该怎么办?

    我们使用的是旧版本的 ActiveMQ 5 3 2 请参阅 ActiveMQ可靠吗 https stackoverflow com questions 4303610 is activemq reliable 我们取消了持久性 因为我们需要

随机推荐