Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “卡哈布错误”;磁盘上没有剩余空间;。如何解决这个问题?_Java_Spring Boot_Activemq_Kahadb - Fatal编程技术网

Java “卡哈布错误”;磁盘上没有剩余空间;。如何解决这个问题?

Java “卡哈布错误”;磁盘上没有剩余空间;。如何解决这个问题?,java,spring-boot,activemq,kahadb,Java,Spring Boot,Activemq,Kahadb,我正在使用activemq。KahaDB是activemq的默认消息存储。但它的大小不断增加,最终耗尽了磁盘空间。即使所有消息都已确认,它的大小仍在增长,并在其数据存储中不断创建新的日志文件 我没有设置与KahaDB相关的属性,它使用的是默认属性 broker = new BrokerService(); TransportConnector connector = new TransportConnector(); connector.setUr

我正在使用activemq。KahaDB是activemq的默认消息存储。但它的大小不断增加,最终耗尽了磁盘空间。即使所有消息都已确认,它的大小仍在增长,并在其数据存储中不断创建新的日志文件

我没有设置与KahaDB相关的属性,它使用的是默认属性

        broker = new BrokerService();
        TransportConnector connector = new TransportConnector();
        connector.setUri(new URI("tcp://localhost:61616"));
        broker.addConnector(connector);
        broker.start();

这些是我在broker上设置的唯一属性。有人能告诉我我可以在KahaDB上使用哪些属性以避免出现此错误吗?

KahaDB日志和索引文件会因为一些原因而存在,其中一些原因并不总是显而易见的,因此您需要进行一些调试,看看是什么让日志文件存在,它可以很简单,只需一条未确认的消息就可以保存整个日志文件,在某些情况下,还可以使用未来的日志文件来跟踪该日志中其他消息的确认


ActiveMQ站点有一个很好的方法来研究这一点,这样您就可以看到在您的情况下是什么使日志中的内容保持活跃。使用最新版本也是一个好主意,因为在这一过程中,事情会得到修复,以防止日志在不应该的时候粘在一起

KahaDB日志和索引文件之所以会保留下来,有很多原因,其中一些原因并不总是显而易见的,因此您需要进行一些调试,看看是什么让日志文件保留下来,它可以很简单,只需一条未确认的消息就可以保存整个日志文件,在某些情况下,将来的日志文件会跟踪该日志中其他消息的确认


ActiveMQ站点有一个很好的方法来研究这一点,这样您就可以看到在您的情况下是什么使日志中的内容保持活跃。使用最新版本也是一个好主意,因为在这一过程中,事情会得到修复,以防止日志在不应该的时候粘在一起

磁盘空间不足可能有几个原因。我建议进一步学习ActiveMQ文档/指南。磁盘空间不足的原因可能有几个。我建议多学习一些ActiveMQ文档/指南。我肯定没有任何未确认的消息。如果一条消息被发送到DLQ,那么这会阻止整个日志文件被删除吗?让我们假设一个场景,如果DLQ中有20条消息,并且所有20条消息都存在于单独的日志文件中,那么我相信它会保留所有20个日志文件,对吗?是的,DLQ和其他任何队列一样,如果消息被稀疏地布置,那么它们会保留它们所在的所有日志。使用我提供的链接中提供的调试信息当然会告诉你,如果你花点时间的话,我肯定没有任何未确认的消息。如果一条消息被发送到DLQ,那么这会阻止整个日志文件被删除吗?让我们假设一个场景,如果DLQ中有20条消息,并且所有20条消息都存在于单独的日志文件中,那么我相信它会保留所有20个日志文件,对吗?是的,DLQ和其他任何队列一样,如果消息被稀疏地布置,那么它们会保留它们所在的所有日志。使用我提供的链接中提供的调试信息当然会告诉您,如果您只需投入一些时间就可以了。