MongoDB - очередь ожидания для подключения к серверу заполнена - PullRequest
0 голосов
/ 09 апреля 2019

Я использую приведенный ниже код для подключения БД mongo.

public static class MongoDBHandler
{
    static IMongoClient _client;
    static IMongoDatabase _database;
    static string MongoDBConnectionString;

    static IMongoClient mClientConnection()
    {
        MongoDBConnectionString = System.Configuration.ConfigurationManager.AppSettings["connectionString"];
        _client = new MongoClient(MongoDBConnectionString);
        return _client;
    }

    public static IMongoDatabase mDatabase()
    {
        try
        {
            if (_client == null)
            {
                _client = mClientConnection();
            }

            if (_database == null)
            {
                var mongoUrl = new MongoUrl(MongoDBConnectionString);
                _database = _client.GetDatabase(mongoUrl.DatabaseName);
            }
            return _database;
        }
        catch
        {
            throw;
        }
    }
}

Я использую вышеуказанный код класса, как показано ниже: -

protected static IMongoDatabase _database;

public void GetData()
{
    _database = Assistant.MongoDBHandler.mDatabase();
    IMongoCollection<Models.RoomTypeMappingOnline> collection_rto = _database.GetCollection<Models.RoomTypeMappingOnline>("collection");
    //Rest of code
}

Мой код работает нормально.Я могу получить данные без проблем с меньшим количеством запросов.

Но когда я получаю больше запросов, я получаю сообщение об ошибке «Очередь ожидания для установления соединения с сервером заполнена».

Ниже приведена строка подключения: -

mongodb://admin:password@server:11111/databse?authSource=sa&appName=database&connectTimeoutMS=5000&minPoolSize=3000&retryWrites=true&waitQueueMultiple=15

Подскажите, пожалуйста, какие изменения я могу внести в мой код, чтобы он мог работать без ошибок.

1 Ответ

0 голосов
/ 23 апреля 2019

Я просто увеличиваю minPoolSize = 3000 до minPoolSize = 5000 в моно-дБ соединении. Это решит мою проблему.

Также обратите внимание, что если вы увеличите минимальный размер пула, то ЦП и использование памяти сервера mongo также увеличатся. Поэтому вам нужно следить за этим, прежде чем увеличивать размер.

...