Chronicle Map重启后抛出异常

时间:2016-09-20 01:58:41

标签: chronicle-map

我遇到以下异常: java.lang.IllegalStateException:我们是一个没有中断的层,但根据层计数器,应该还有1个条目。大小分歧?     net.openhft.chronicle.map.impl.CompiledMapIterationContext.forEachTierEntryWhile(CompiledMapIterationContext.java:3779)     net.openhft.chronicle.map.impl.CompiledMapIterationContext.innerForEachSegmentEntryWhile(CompiledMapIterationContext.java:3791)     net.openhft.chronicle.map.impl.CompiledMapIterationContext.forEachSegmentEntryWhile(CompiledMapIterationContext.java:3811)     net.openhft.chronicle.map.impl.CompiledMapIterationContext.forEachSegmentEntry(CompiledMapIterationContext.java:3816)     net.openhft.chronicle.map.ChronicleMapIterator.fillEntryBuffer(ChronicleMapIterator.java:61)     net.openhft.chronicle.map.ChronicleMapIterator.hasNext(ChronicleMapIterator.java:77)

1 个答案:

答案 0 :(得分:1)

错误消息不言而喻 - Chronicle Map的内存已损坏,使用ChronicleMapBuilder.recoverPersistedTo()恢复它并尝试再次迭代。

如果你在“重启”中解释你的意思,那么将来防止这样的事情会非常有帮助。 JVM进程重启,还是服务器重启?你用什么信号或命令以两种方式重启?

另外,FYI Chronicle Map.forEach()forEachEntry()是迭代Chronicle Map的有效方式,而不是entrySet / keySey / values()。iterator()。