我正在使用chronicle queue v4将序列化对象写入队列。但我一直低于例外
线程“CLF-1”中的异常java.lang.AssertionError:你不能在标题中放置一个标题,检查你是否没有嵌套文档。 在net.openhft.chronicle.wire.AbstractWire.writeHeader(AbstractWire.java:228) at net.openhft.chronicle.queue.impl.single.StoreRecovery.writeHeader(StoreRecovery.java:28) at net.openhft.chronicle.queue.impl.single.SingleChronicleQueueStore.writeHeader(SingleChronicleQueueStore.java:298) at net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts $ StoreAppender.writingDocument(SingleChronicleQueueExcerpts.java:232) 在net.openhft.chronicle.wire.MarshallableOut.writeDocument(MarshallableOut.java:68)
这就是我的代码的外观
SingleChronicleQueue queue = SingleChronicleQueueBuilder.binary(queueFullPath).build();
ExcerptAppender queueWriter = queue.acquireAppender();
UserStat stat=new UserStat();//this is my object
byte[] bytes = convertObjectToBytes(stat);//custom serialization to convert java object to byte array
queueWriter.writeDocument(w -> w
.getValueOut().bytes(bytes));
没有任何内容写入.cq4文件。但是每次调用writeDocument()方法时,我都会看到上次修改时间发生了变化。
答案 0 :(得分:0)
最有可能(根据堆栈跟踪)您正在写入的文件已损坏。您需要清理它并重试(看来您使用的是相当旧的版本)。尝试使用新版本的Chronicle Queue进行测试-解决的可能性很高。