2016-09-20 70 views
1

我得到以下异常: 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)Chronicle Map在重启后抛出异常

回答

1

错误消息为自己说话 - 编年史地图的内存已损坏,使用ChronicleMapBuilder.recoverPersistedTo()恢复它并尝试再次迭代。

如果你在“重新启动”下解释你的意思,这对预防未来的事情会非常有帮助。 JVM进程重启,还是服务器重启?你用什么信号或命令以任何方式重新启动?

此外FYI Chronicle Map.forEach()forEachEntry()是比entrySet/keySey/values()。iterator()更有效的迭代Chronicle Map的方法。

+0

这是一个JVM进程重启。我试着forEach()或forEachEntry(),但我得到了一个excepiton:70738 [SCHEDULER#3]错误net.openhft.chronicle.map.impl.CompiledMapIterationContext - 锁定在该段上的上下文: net.openhft.chronicle.map .impl.CompiledMapIterationContext @ 1c1f0e2:已使用,段6,本地状态:UNLOCKED,读取锁定计数:0,更新锁定计数:0,写入锁定计数:0 当前线程上下文: net.openhft.chronicle.map.impl。 CompiledMapIterationContext @ 1c1f0e2:使用,段6,本地状态:UNLOCKED,读锁计数:0,更新锁计数:0,写锁计数:0 –

+0

谢谢。杀-9还是合作? – leventov