0

这是随机发生的,我无法预测,需要有关建议的帮助。在查看使用 MongoVUE时,查看下面的简单Entity字段hash确实存在于 Mongo 中。Collection将 10slice'es插入 LinkedHashMap 工作正常,在 MongoDb MOngoVUE 中查看数据库时一切正常。创建时,Query如果我插入 10,我会得到 10,但在最后 5 (5,6,7..) 字段hash为空。

Collection BatchClass确实只有一个文档,这就是我正在运行的测试。什么会导致这种行为?

运行测试:保存相同的数据 5 次,其中 3 次hash在运行时该字段为空Query。(在 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;

    }
}
4

1 回答 1

0

失败的读取操作发生在写入后 30-60 秒。由于 MongoDb 以 60 秒的间隔刷新到磁盘,这可能是原因。

于 2013-10-14T18:08:25.783 回答