问题标签 [apache-nms]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2091 浏览

c# - 消费者服务未将所有消息从 ActiveMQ 队列中出列

我有一个 Windows 服务正在尝试使用来自一些 activemq 队列的消息。但是,它只收到一些消息,而其他消息则卡在队列中的“待处理消息”中。ActiveMQ 告诉我它已经入队让我们说 500 条消息给消费者,但只有 300 条出队。服务中设置了多个侦听器。这是代码的重要部分:

我确认消息的方式是否有问题会导致某些消息不被确认?是并发问题吗?我不确定他们是否仍在使用 processLog 功能(添加到我的数据库中)。

编辑:我认为这与确认没有正确发生(出于某种原因)有关。我的日志中没有抛出异常。但是,activemq 显示以下内容:调度队列正在填充

根据我的阅读,调度队列中充满了发送给消费者但未被确认的消息。为什么会这样?

0 投票
1 回答
3654 浏览

c# - C# Apache.NMS MessageListener OnMessage 未触发

我有以下代码连接到 ActiveMQ 服务器。连接有效,消费者在 AMQ Web 界面上可见,队列中有消息但 OnMessage 未执行。

我尝试移动启动呼叫,但这没有帮助。TestConnection 显示客户端 ID 和已启动:true

队列中的消息数量缓慢减少,根据 Web 界面,这是我的消费者正在执行此操作。

显示出队的网页界面

0 投票
1 回答
3251 浏览

c# - 如何使用 Apache.NMS.ActiveMQ (C#) 向消息添加自定义属性?

我从 C# 中的 ActiveMQ 开始。我将我的对象序列化为 json 并毫无问题地发送它。

我会在我的消息中添加属性,但我没有成功。我在少数网站上看到过 setIntProperty(String name,int value),但在 Apache.NMS.ActiveMQ (C#) 上找不到。

这是我的代码:

任何人都可以帮我举个例子吗?

0 投票
0 回答
1138 浏览

c# - Apache NMS 抛出已建立的连接被主机中的软件在大量使用下中止

背景
C# WPF 应用程序通过 ActiveMQ/JSON 与在 linux 上运行的 JAVA 服务器交谈
总共 5 个连接实例:
队列:2
主题:3(1 个生产者,2 个消费者)

问题
在大量使用情况下(在不到 500 毫秒的时间内发送/接收大约 200 条消息的吞吐量,内存工作设置在 1-1.2 GB 左右),抛出“已建立的连接被主机中的软件中止”。

样本堆栈

到目前为止尝试过

  • 关闭不活动监控以减少 5 个连接的流量。主要是因为应用程序有自己的心跳实现。
  • 将 ConnectionFactory.OptimizeAcknowledge 设置为 true 以批量确认
0 投票
1 回答
367 浏览

c# - 如何从 Apache NMS ActiveMQ 消息中获取底层 Stream 句柄

背景:
C# WPF 应用程序通过 ActiveMQ(Apache.NMS)/JSON(Newtonsoft.Json) 与 linux 上运行的 JAVA 服务器通信

问题
大于 85000 字节的 JSON 消息导致 LOH 碎片

可能的解决方案:
不是将 JSON 读取为 Apache.NMS.ITextMessage(目前就是这种情况),而是使用 JsonTextReader 获取底层流句柄并反序列化

实施问题:
Apache.NMS API 似乎不支持此功能,尽管 ActiveMQStreamMessage/ActiveMQBytesMessage 变体在这里并不真正符合要求。

我想知道有没有人有以上的经验?

0 投票
1 回答
569 浏览

c# - ActiveMQ - 在侦听器事件触发后,我是否需要重新订阅队列?

我正在使用 Apache.NMS 库与 ActiveMQ JMS 系统集成。对于响应队列监听器,消费者是否在收到消息后被释放是不清楚的。

以下是解决方案的摘录:

消费者耐用吗?

收到消息后是否需要重新订阅?

这是否类似于其他队列/侦听器实现(SQL Server 服务代理或 TCP/IP 侦听器),您需要一个 while(true) 循环来保持侦听器处于活动状态?

0 投票
2 回答
3735 浏览

c# - .NET 上的 Apache NMS 无法连接到 ActiveMQ [通道太长时间处于非活动状态]

我正在尝试从 .NET 应用程序订阅 ActiveMQ 主题,下面是我的代码(我使用 Apache NMS 1.7.0):

上面的代码编译成功...但是尝试连接到 ActiveMQ 服务器失败。下面是失败的陈述......

...这是错误消息:

我有点困惑,因为即使这是我的客户端第一次尝试连接 ActiveMQ 服务器,我也会收到此错误。

我也试过设置wireformat.maxinactivityduration=0,但没办法。任何帮助将非常感激。

0 投票
1 回答
941 浏览

c# - 使用 Apache NMS STOMP 连接到 RabbitMQ

我正在尝试使用 STOMP 协议在 Rabbit MQ (3.6.5) 队列中读取和写入消息。我使用 Apache NMS Stomp (1.5.4) 作为客户端库。

使用 NMS 发送消息时出现以下异常:
输入字符串格式不正确。

原因是 NMS 期望归档的message-id在特定位置包含一个数字。
这是 NMS 库中的代码:

Rabbit MQ Broker 发送的 message-id 字段有以下值: “T_ID:fig-52033-636066062974737556-1:0:1:1@@session-lOnNy1WnMfOTxEEVQmLHgg@@1”
NMS 尝试转换“1@@session -Bo6HXXTZFSh51Qy7X4wx9A@@1"到 Int64。

这是我的客户代码:

这个问题有解决方案吗?

  • 一种配置 NMS 以不同方式处理 id 的方法?
  • 一种告诉 Rabbit MQ 生成其他消息 ID 的方法?
0 投票
1 回答
45 浏览

java - 故障转移传输协议无法处理消费者控制消息

作为 AbortSlowConsumerStrategy 的一部分,如果 Active MQ 发现消费者速度很慢,它会发送关闭消费者的命令,但在消费者/客户端,故障转移传输协议实现似乎无法处理此消费者控制命令,它失败说,“错误: 未知命令 - ConsumerControl.."; 有没有更好的方法来中止消费者而不是接收错误?

请注意,消费者在 DotNet 中使用 Apache.NMS 库。

0 投票
1 回答
644 浏览

c# - 如何在队列 Apache.NMS 中获取消费者数量

我正在使用 ActiveMQ 使用 C# 应用程序发送和接收消息。我的队列名称是“ToServer”。如何获得count消费者?谢谢。