我不知道从哪里开始或哪些信息相关,请告诉我哪些其他信息可能有助于解决此问题.
我正在开发一个简单的cometd应用程序,我正在使用mongodb作为我的存储后端.我在应用程序启动时获取了一个mongodb实例,并将此实例用于所有查询.事实上,这是由mongo java驱动程序文档推荐的,如下所述:http://www.mongodb.org/display/DOCS/Java+Driver+Concurrency.我正在抓住吸管认为这个问题与线程安全有关,但根据该链接,mongodb完全是线程安全的.
这是有趣的地方.我有一个课程延伸BasicDBObject.
public class MyBasicDBObject {
private static final String MAP = "map";
public boolean updateMapAnd(String submap, String key, byte[] value) {
Map topMap = (Map)this.get(MAP);
Map embeddedMap = topMap.get(submap);
byte[] oldValue = embeddedMap.get(key);
newValue = UtilityClass.binaryAnd(oldValue, value);
embeddedMap.put(key, newValue);
topMap.put(submap, embeddedMap);
this.put(MAP, topMap);
}
public boolean updateMapXor(String submap, String key, byte[] value) {
Map topMap = (Map)this.get(MAP);
Map embeddedMap = topMap.get(submap);
byte[] oldValue = embeddedMap.get(key);
newValue = UtilityClass.binaryXor(oldValue, value);
embeddedMap.put(key, newValue); …Run Code Online (Sandbox Code Playgroud)