Мой проект использует игровую среду и имеет MorphiaDBHelper, который использует шаблон scala и singleton.Есть класс DBAccessor, который использует Java и вызывает MorphiaDBHelper для сохранения информации в MongoDB.
У меня есть 2 вопроса:
В коде должно быть только одно TCP-соединениек MongoDB. Однако я обнаружил, что всегда есть около 100 TCP-соединений с MongoDB.Кто-нибудь может посоветовать, что такое проблема и как ее исправить?
MongoDB, кажется, принимает только около 100 TCP-соединений, не более.Это ограничение размера пула по умолчанию в MongoDB?
MorphiaDBHelper.scala
@Singleton
class MorphiaDBHelper(configuration: Configuration) {
val serverAddress = new ServerAddress(mongoip, mongoport)
val credential = MongoCredential.createCredential(mongouser, sesDB, mongopass.toCharArray)
val clientOptions = MongoClientOptions.builder.build
val mongoClient = new MongoClient(serverAddress, credential, clientOptions)
val datastore = morphia.createDatastore(mongoClient, sesDB)
}
DBAccessor.java
public class DBAccessor {
private static MorphiaDBHelper morphiaDBHelper = null;
public static void initMorphiaDBHelper(MorphiaDBHelper dbHelper) {
if(morphiaDBHelper == null)
morphiaDBHelper = dbHelper;
}
public static MorphiaDBHelper getMorphiaDBHelper() {
return morphiaDBHelper;
}
public static <T> void savePojo(T pojo) {
try {
morphiaDBHelper.datastore().save(pojo);
} catch (Exception e) {
e.printStackTrace();
play.Logger.error(e.getMessage());
}
}
}