- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个简单的测试用例,我在其中启动了一个 HornetQ 服务器 (V2.4.7.Final) 作为 Spring 上下文的一部分。这很好用,我可以通过 JMS、HornetQ API 和/或 JMX 访问队列。
测试用例应该在开始时清空队列,检查它是否为空,然后将 10 条消息添加到队列中。只要此队列上没有消费者,就可以使用 management queue 或 JMSQueueControl
。即使通过 JMX 对队列做一些操作也很好。
一旦我使用 Spring 配置向此队列添加消息监听器 - 并且监听器按预期使用消息 - 我无法从队列中删除所有消息。通过 JMX 进行的方法调用、管理队列和 JMSQueueControl
都不起作用,即方法被无异常地调用,但它们没有任何效果。
我想也许我必须在对其内容进行一些修改之前暂停队列,但暂停也不起作用。我可以看到队列是通过 JMX 暂停的,并且在使用 API 时报告了同样的情况,但消费者仍然使用队列中的消息。因此我认为它根本没有被暂停。
我知道没有源代码很难,但从我的角度来看,这都是非常基本的设置,你可以在很多很多教程中找到它。任何人都可以提供建议我做错了什么。如果需要任何源代码,请发表评论,我会添加相关部分。
最佳答案
HornetQ 支持删除代理端队列中的消息。一旦消息被分派(dispatch)给消费者并在消费者上缓冲,就无法使用任何管理 API 从消费者缓冲区中删除消息。
解决此问题的一种方法(如果必须)是通过将 consumer-window-size 设置为 0 来禁用消费者缓冲,但请注意潜在的性能下降。
否则,您需要以编程方式处理它;通过在处理消息之前添加一些有效性检查。
您可以在此处阅读有关 HornetQ 流量控制的更多信息 https://docs.jboss.org/hornetq/2.2.5.Final/user-manual/en/html/flow-control.html
关于java - HornetQ:从队列中删除所有消息,不适用于队列中的消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34928606/
有没有办法在同一个虚拟机中启动多个 HornetQ 嵌入式代理?例如,在同一进程中运行且完全不相关的两个独立应用程序。 如果我尝试注册第二个 EmbeddedJms 实例,而一个实例已经在运行,这就是
我正在尝试用我自己的测试项目重新创建 HornetQ 示例。但是我遇到了类加载器问题。显然,我缺少文档中未指定的一些依赖项。 文档让我添加 hornetq-core-client.jar netty.
如何使用 HornetQ 以编程方式创建 JMS 主题和队列? 最佳答案 http://docs.jboss.org/hornetq/2.2.14.Final/user-manual/en/html/
我构建了一个 Spring JMS 解决方案,该解决方案是针对 JBoss 7.1.1 和外部 HornetQ 实现 2.2.1.4 构建的。此连接并成功运行。 但是我现在使用 EAP6,并尝试连接到
(在 11.11.11 编辑,底部编辑) 我有两个运行 HornetQ(2.2.5 AS7 版)服务器的 JBoss AS 6.1 服务器。 让我们称另一个为 CLIENT,另一个为 MASTER。
我正在尝试运行一本书(HornetQ Messaging Developers Guide)中的一个简单的 HornetQ 示例,但收到错误消息。我没有使用maven,因为我想坚持使用书中给出的示例。
我使用 SBT 0.13.1 . 当我添加 HornetQ 作为我的依赖项时: libraryDependencies += "org.hornetq" % "hornetq-server" % "2
我发现在我们的实际环境中经常发生以下异常: 2013-01-08 00:09:45,886 ERROR [org.jboss.aspects.tx.TxPolicy] (Thread-70534 (H
我在带有 hornetQ 的 ubuntu 上使用 jboss AS 6 Final 我使用管理面板在名为 Message Buffer Queue 的服务器上创建了一个新队列。 我收到以下错误: U
我正在使用 HornetQ 发送电子邮件。 文件附件使用对象存储系统进行带外传输(不作为消息的一部分)。这会增加一些开销,我想通过将小文件直接放入消息属性来避免这些开销。 我知道我可以发送巨大的消息体
我已阅读 HornetQ 常见问题解答,但找不到任何相关内容。我正在使用 HornetQ 2.2.5,它包含一个错误(是的,只有一个;)。根据这篇文章https://community.jboss.o
我已经配置了hornetq来处理大消息,但是如果客户端没有启动,大消息目录就会变得太大,消耗整个磁盘空间 请帮助弄清楚如何在邮件发送后删除或清理大型邮件文件夹? 也未在 jboss/server/de
我在独立模式下使用默认配置运行 hornetQ,我可以从本地系统连接到它,如果我想从另一个系统连接,必须更改哪些配置才能实现?! 最佳答案 您首先需要定义另一个系统的含义,您是指另一个 HornetQ
对于当前的项目,我尝试使用 JBoss 7.1 和 HornetQ (JMS) 设置以下场景,我认为这是一个相当常见的用例:有三个应用程序服务器。多个MDB应各自处理一个冗长计算过程的分解片段,任务应
我正在尝试独立运行 HornetQ 服务器。但我不知道该怎么做,我下载了 hornetq-2.0.0.GA 并使用 build.sh 启动服务器,但我希望通过 java 代码启动 HornetQ 服务
我想以某种方式延迟整个消息组的消息。 问题是,属于每个消息组的所有消息都必须按照它们发布的顺序进行处理。如果其中一条消息无法被使用 - 我们希望延迟它并延迟同一消息组中的其余消息。我不想阻止消费者 -
我使用 HornetQ 作为队列提供程序,因为它具有持久性功能。但是,在我重新启动应用程序后,队列中的所有消息都丢失了。可能是配置问题? 代码如下: // Step 1. Create the Con
我使用 EJB 来实现命令模式。 EJB 是执行业务逻辑的命令服务。我知道在 J2EE 中 EJB 管理事务以及事务超时。
我正在开发一个使用 HornetQ 作为消息传递服务器的应用程序。在 HornetQ 启动时,我总是收到与 HornetQ live lock 相关的错误。 我针对这个特定问题进行了研究,但无法得出相
我正在尝试将 ActiveMQ-CPP 与 HornetQ 一起使用。我正在使用 ActiveMQ-CPP 捆绑示例,但我很难使用它。生产者工作得很好,但消费者给我以下信息: * BEGIN SERV
我是一名优秀的程序员,十分优秀!