当前位置: 首页 > 知识库问答 >
问题:

为什么删除db-*后ActiveMQ没有而控制台仍然显示消息。KahaDB的日志文件

焦博实
2023-03-14

我正在使用卡哈DB作为持久存储来保存ActiveMQ 5.16.4中的消息。

<persistenceAdapter>
    <kahaDB directory="${activemq.data}/kahadb"
            checkForCorruptJournalFiles="true"
            checksumJournalFiles="true"
            ignoreMissingJournalfiles="true"
    />
</persistenceAdapter>

我正在发送持久消息,然后在代理运行时,我正在删除KahaDB日志文件(下图中的db-1.log),这些文件应该保存队列的消息。但是,删除日志文件似乎不会执行任何操作。在 ActiveMQ 控制台中,我仍然可以看到持久消息,并且我还可以发送更多消息,这些消息由连接的使用者从 Spring Boot 应用程序接收。我认为删除这些日志文件将摆脱队列中挂起的消息或中断ActiveMQ。任何想法为什么它没有发生?

共有1个答案

阴永福
2023-03-14

ActiveMQ不把KahaDB当成一个SQL数据库,在运行时存储和检索消息。一般来说,ActiveMQ将所有消息保存在内存中,它使用KahaDB作为日志来存储消息,如果代理失败或以管理方式重新启动,它将这些消息重新加载到内存中。删除KahaDB的底层数据不会影响代理内存中的内容,也不清楚你为什么要这样做。

如果您想在运行时从队列中删除消息,您可以通过Web控制台以管理方式执行此操作。删除KahaDB日志文件不是建议的方法。

 类似资料:
  • 问题内容: 状态的JavaDocs: 级别降序为: (最高值) (最低值) 资源 输出量 问题陈述 我的示例将设置为,因此我希望每个循环看到2条消息。相反,我为每个循环看到一条消息(消息丢失)。 题 为了查看(或)输出,需要进行哪些更改? 更新(解决方案) 感谢Vineet Reynolds的回答,该版本可以按照我的期望工作。它显示3条消息和3条消息。 问题答案: 记录器仅记录消息,即它们创建日志

  • 当然,对于GUI,除非运行我上面提到的命令,否则不会加载控制台,所以如果您有很多打印语句,它是否仍然影响程序的速度,它们是否仍然打印?(即使认为没有显示终端/控制台)

  • 有没有人知道我应该做什么来使这些日志显示在控制台的“日志”选项卡上? OBS:-崩溃被显示在控制台上没有任何问题。-下面我包括了一张图片,显示了我期望看到的这些“分析事件”的确切选项卡。我的控制台是葡萄牙语的,但“registros”选项卡是英文版的“logs”选项卡。

  • 嗨,我已经在不和谐的py日志删除消息,但现在它是这样的,当消息被删除的机器人什么都没有显示,我可以以某种方式使没有消息发送时,机器人删除消息

  • 问题内容: 此代码是否同时写入日志文件和控制台? 问题答案: 不,它不会同时写入两者。只会写入控制台。关于原始代码的简短说明。我想您在某处定义,但是代码仍然不正确。您需要在语句中使用引号,例如: 因为我认为您是要附加到文件中。否则,您的代码将抛出一个因为未定义的变量。 但是,正如其他人所说,您应该强烈考虑使用日志记录模块。这是一个如何同时写入控制台和日志文件的简单示例。该代码部分源自此处和此处: