编写字节数组

时间:2018-04-06 15:46:00

标签: chronicle chronicle-queue

我正在使用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()方法时,我都会看到上次修改时间发生了变化。

1 个答案:

答案 0 :(得分:0)

最有可能(根据堆栈跟踪)您正在写入的文件已损坏。您需要清理它并重试(看来您使用的是相当旧的版本)。尝试使用新版本的Chronicle Queue进行测试-解决的可能性很高。