2011-08-12 72 views
0

我们已经在美国和它的如下文前的情况:承认使用客户端预取的消息确认模式

  1. 我们有长期订户订阅的话题。这个持久订阅者是一个由守护进程运行的perl脚本。
  2. perl脚本使用stomp连接到代理。
  3. perl脚本每5分钟唤醒一次,检查主题中的消息并通过预取消息批量处理它们。
  4. 订户使用客户端确认并仅确认批次的最后一条消息。
  5. 我们使用带有kahaDB持久性的AMQ 5.5。

现在我们看到的是,

  • 即使消息被批量处理,最后的消息被确认的飞行次数不下来。
  • 入队计数,出队计数和分派计数不匹配。
  • 日志文件没有得到清理。

我明白,一旦消息的引用丢失或删除(即消息被消耗),日志文件将被清除。但是,它是否需要对我在主题上看到的各种计数属性做任何事情?

另外,如果客户端崩溃,并且在实况回来后消耗所有消息,那么我也应该预计飞行计数降为0。

请让我知道是否有任何其他原因可能导致日记文件滞留。

谢谢

哈日

+0

即使调度计数和机上计数发生变化,我也会看到出队计数保持为0。我认为,离队计数与从主题中删除的消息有直接关系。 – Hari

+0

这导致我们的生产日记文件日益增长。如果有精通ActiveMQ的人可以帮助我理解问题,我会非常感激。 – Hari

回答

0

其实我发送ACK后,立即断开连接。 在断开连接之前等待确认收据解决了问题。