这是随机发生的,我无法预测它,需要帮助提出建议。使用MongoVUE查看Entity
时,查看字段hash
下面的简单Collection
确实存在。在LinkedHashMap中插入10 slice'es
工作正常,在查看MongoDb MOngoVUE中的数据库时一切正常。创建Query
时,如果我插入10,我会得到10,但是在最后5(5,6,7 ..)上,字段hash
为空。
Collection
BatchClass
只有一个文档,这就是我正在运行的测试。什么可以导致这种行为?
运行测试:在运行hash
时,Query
字段为空时,保存相同的数据5次,其中3次为空。(在MonGOVUE中,字段hash
具有所需的值5次测试..
MongoDB是否有我可以调查的日志文件?
创建Query
:
Query<BatchClass> query = mongo.createQuery(BatchClass.class);
query.field(BatchClass.BATCHUUID).equal(theBatch.getBatchUuid());
query.field(BatchClass.POSITION).equal(position);
res = (BatchClass) query.get();
Entity
:
@Entity(noClassnameStored=true)
public final class BatchClass{
@Id
private ObjectId id;
@Embedded
private LinkedHashMap<Integer, Slice> sliceTable = null;
public void insertSlice(int pos, Slice slice) {
sliceTable.put(pos,slice);
}
public Map<Integer, Slice> getSliceTable() {
return sliceTable;
}
@Entity(noClassnameStored=true)
@Embedded
public static class Slice
{
public int keyPosition;
public String sliceName;
public String hash;
public int sliceFileSize;
public boolean completed = false;
}
}
答案 0 :(得分:0)
写入后30-60秒发生失败的读取操作。由于MongoDb以60秒的间隔刷新到磁盘,这可能是原因。