Я использую процессы потока Java, и у меня есть некоторые проблемы с записью/обновлением с использованием MongoDB 3.0 (не оштукатурен) и Morphia. Вот как это работает:MongoDb Morphia Записывать Концерн
1) Нитка обновления некоторых данные в документе, имеющие определенный «_id» (через морфий ODM)
2) После выполнения document.save(), Пронизывайте посыл «_id» к нитевую
3) тема B получить «_id», запрос MongoDB, чтобы получить письменный документ
Иногда нить B получить «_id», запрос MongoDB, но не получает обновленную версию документа (еще старые значения).
Я думаю, что проблема с проблемой записи. Я настроил MongoDB клиент и морфий хранилищу, как это:
MongoClient mongoClient = new MongoClient(new ServerAddress (host,port),
credential);
Datastore datastore = morphia.createDatastore(mongoClient, datastoreName);
// Setting up writeconcern
WriteConcern wc=new WriteConcern(1,0,false,true);
datastore.setDefaultWriteConcern(wc);
mongoClient.setWriteConcern(wc);
Есть ли что-то я не хватает? Как действительно дождаться, когда документ будет обновлен в MongoDB Morphia перед отправкой сообщения в Thread B?
я думаю, что ваш ответ на sharded сервера MongoDB. Mine is not ... – Cedric
Нет, эти настройки предназначены для наборов реплик – xeraa
ОК спасибо. У меня только 1 экземпляр mongodb на 1 сервере. Я заменил устаревший WriteConcern wc = new WriteConcern (1,0, false, true); с WriteConcern.JOURNALED (но это точно так же в соответствии с определением класса WriteConcern) – Cedric