【发布时间】:2015-05-05 05:45:14
【问题描述】:
我正在开发一个使用 java 和 mongoDB 作为后端数据库的 Web 项目。要打开一次连接并为项目中包含的每个服务重复使用相同的连接,我遵循以下 URL
mongodb open connection issue。为了关闭打开的连接,我在用户注销网站会话期间使用函数MongoDBClass.INSTANCE.close();。但问题是,一旦用户再次登录会话,它会产生以下错误@ 987654323@。这意味着连接没有打开,MongoDBClass INSTANCE 没有重新初始化所以MongoClient 没有重新打开连接。但是在服务器重新启动后,登录第一次完美运行。当我在注销用户会话期间调用关闭方法而不重新启动服务器后如何再次建立新连接。我正在使用以下代码
public enum MongoDBClass {
INSTANCE;
private static final String MONGO_DB_HOST = "hostURL";
private Mongo mongoObject;
private DB someDB;
String DB_NAME = null;
MongoClientOptions options = null;
MongoDBClass() {
options = MongoClientOptions.builder().connectionsPerHost(100)
.readPreference(ReadPreference.secondaryPreferred()).build();
mongoObject = new MongoClient(new ServerAddress(MONGO_DB_HOST, 27001),
options);
someDB = mongoObject.getDB(Nutans_Mongo.getNameOFDB());}}
public DB getSomeDB() {
return someDB;
}
public void setSomeDB(String dbName) {
someDB = mongoObject.getDB(dbName);
DB_NAME = dbName;
}
public String close() {
mongoObject.close();
return "true";
}
}
【问题讨论】:
标签: java web-services mongodb session enums