package jelectrum.db.mongo; import com.datastax.driver.core.Session; import jelectrum.db.DBMap; import jelectrum.db.DBMapSet; import jelectrum.Config; import com.mongodb.MongoClient; import com.mongodb.MongoClientOptions; import com.mongodb.DBCollection; import com.mongodb.ServerAddress; public class MongoDB extends jelectrum.db.DB { private MongoClient mc; private com.mongodb.DB db; public MongoDB(Config config) throws Exception { super(config); conf.require("mongo_db_host"); conf.require("mongo_db_name"); conf.require("mongo_db_connections_per_host"); MongoClientOptions.Builder opts = MongoClientOptions.builder(); opts.connectionsPerHost(conf.getInt("mongo_db_connections_per_host")); opts.threadsAllowedToBlockForConnectionMultiplier(100); opts.socketTimeout(3600000); mc = new MongoClient(new ServerAddress(conf.get("mongo_db_host")), opts.build()); db = mc.getDB(conf.get("mongo_db_name")); open(); } protected DBMap openMap(String name) throws Exception { DBCollection c = db.getCollection(name); return new MongoMap(c); } protected DBMapSet openMapSet(String name) throws Exception { DBCollection c = db.getCollection(name); return new MongoMapSet(c); } }