问题标签 [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 投票
2 回答
2487 浏览

activemq - 如何使用 Apache.NMS API 以编程方式清除 ActiveMQ 队列?

我需要能够使用 Apache.NMS (C#) 以编程方式清除队列。我一直在查看 NMS API,但没有看到这样的功能。它存在吗?

0 投票
2 回答
1307 浏览

c# - 从 MSBuild 3.5 但不是 Visual Studio 编译的类型推理失败 (CS0246)

从命令行编译一些最近的更改时,我们刚刚在构建服务器上遇到了一个有趣的错误:

c:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe

错误 CS0246:找不到类型或命名空间名称“var”(您是否缺少 using 指令或程序集引用?)

有问题的代码:

_producerErrors是来自Apache.NMS的IMessageProducer的类型 是ITextMessage的类型
response

请注意,它从 Visual Studio 成功编译,我可以从命令行本地重现错误,我认为这排除了构建服务器的配置问题。

修复当然是微不足道的,但它让我很难理解为什么编译只是从 MSBuild 命令行失败?有问题的项目有其他var正在使用的关键字编译得很好,所以我怀疑它可能与 Apache 程序集有关,但是什么?

0 投票
1 回答
1440 浏览

apache - 使用 Apache NMS 传输大文件

可以说,在通过 Apache NMS(使用 ActiveMQ)传输大文件时,目前认为什么是最先进的?将整个内容放入 StreamMessage 中?但是,我发现这里的命名有点误导,因为文件实际上并没有通过 JMS 流式传输,整个内容将驻留在内存(或磁盘?)中,并且会一次全部发送。在这里,我遇到了大于 100 MB 的文件的一些问题:Apache.NMS.NMSException : Unable to write data to the transport connection: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.

NMS 不支持 BlobMessage ......我真的看不到任何选择,只能将文件分成块,在另一边重新组装它们,等等。

谢谢你,克里斯蒂安。

0 投票
1 回答
6446 浏览

c# - 使用 C# 和 Apache NMS 的 ActiveMQ - 对队列中的消息进行计数

我正在使用 ActiveMQ 使用 C# 应用程序发送和接收消息。但是,我在获取队列中消息的数量时遇到了一些困难。这是我的代码:

我以为我可以使用 QueueBrowser 来获取计数,但它返回的 IEnumerator 始终为空。我从这个页面得到了使用QueueBrowser的想法,但也许还有另一种方法我应该这样做?

更新:

通过访问当前消息解决了我在通过枚举器时发现的“无限循环”问题的解决方案。它现在只经过一次循环(这是正确的,因为队列中只有一条消息)。

新的while循环是:

0 投票
1 回答
309 浏览

activemq - 为什么 ActiveMQ 消费者恢复到拉模式而不是预取

我最近升级到 NMS ActiveMQ 1.5.2,当我重新启动代理时,连接和消费者得到恢复,但他们恢复到“拉”模式,这意味着代理不会自动向他们发送消息。这不是以前版本的行为方式。我需要的是让它恢复到原来的状态,即预取 1000。我想我一定是缺少故障转移 URL 或类似的设置。

这里有人知道我可以尝试什么吗?

我的堆栈是:

这是我在重新启动代理时看到的消费者日志条目:

0 投票
1 回答
4020 浏览

c# - Apache NMS - 如何确定连接是否正常

我在一些 Apache NMS 问题上遇到了麻烦。部分原因可能是我自己对平台缺乏了解。

本质上,我有一个 NMS STOMP 客户端,用于通过 STOMP 发送和接收 AMQ 消息。API 看起来有点像这样:

我试图让我的集成测试始终如一地通过,但是当我增加 AMQ 停机的时间时它们总是失败(在 10 秒时通过,在 60 秒时失败)。经过大量的调试和跟踪后,我发现问题似乎源于我的IsConnected实现(或者,至少,这是问题的一部分):

我通过反复试验得出了这个实施方案。我根本找不到一种简单的方法来确定连接是否“正常”。没有我可以找到的财产​​,IConnection或者Session可以告诉我这一点。

我知道ConnectionInterruptedListenerConnectionResumedListenerExceptionListener事件,但在我的集成测试期间唯一提出的事件是ExceptionListener. 此外,我知道在使用我正在生产的故障转移时它们根本没有被提出。

谁能帮助我可靠地确定连接是否正常?或者也许澄清我可能有的任何误解?

0 投票
1 回答
312 浏览

c# - 为什么活动 MQ 消费者即使在线也没有收到任何消息?

  1. 消费者创建。
  2. 制作人创建。
  3. 消息已发送。
  4. 在队列中排队的消息。
  5. 但是 Msg 没有出队(即使该队列有在线消费者)。

系统上没有记录错误。那么可能是什么原因呢?

0 投票
3 回答
2267 浏览

c# - 为什么没有为 ActiveMQ 临时队列创建消费者?

SimpleMessageListenerContainer选项外,不会为临时队列创建消费者。我不会使用这里SimpleMessageListenerContainer面临的一些问题

以下代码不起作用...(即使没有创建临时队列)

后续代码正在运行:-但队列似乎是持久队列而不是临时队列

使用上面的代码(使用 NmsDestinationAccessor)它正在工作。但它创建了一个持久队列。所以当我直接使用临时队列回复目的地时,它不起作用。

0 投票
1 回答
4747 浏览

activemq - ActiveMQ NMS:当代理关闭时,connection.start() 与故障转移协议一起挂起

我有使用 nms.activemq 1.5.0 的 C# 应用程序。

当我的应用程序启动时,它会尝试使用故障转移协议连接到代理(我在主从配置中有两个代理)。
如果两个代理都关闭,我的应用程序由于connection.start().
我尝试了我在网上找到的所有信息——我尝试了故障转移协议的每个属性,还尝试了设置连接超时,尝试了transport.requesttimeout

我还尝试了更新版本的 nms.activemq,但似乎没有解决问题。

关于什么可能导致此问题或任何解决方法的任何想法?

0 投票
1 回答
2173 浏览

.net - .NET 中的 ActiveMQ 连接启动超时

我有 ActiveMQ 的 .Net 客户端。我正在使用 Apache.NMS 1.5.1.2739 和 Apache.NMS.ActiveMQ 1.5.6.2746

我使用以下代码连接到代理:

问题是当没有可用的 ActiveMQ 代理时 connection.Start() 永远挂起。所以 transport.timeout 在这里没有帮助。我想让 Start() 方法超时。因此,在这段时间之后发生异常并且执行可能会进一步进行。如何避免这样的问题?