Когда мне следует открывать и закрывать соединения MongoDB?

Я новичок в MongoDB и NoSQL в целом, и я только что начал создавать сайт с MongoDB / Norm / ASP.NET MVC 3.

Мне интересно, как я должен оценивать подключения к моя база данных Mongo.

Прямо сейчас у меня есть Basecontroller, который создает экземпляр MongoSession, а onActionExecuted удаляю его, поэтому все мои производные контроллеры будут иметь доступ к моей MongoSession. Класс MongoSession открывает соединение в своем конструкторе и размещает его в Dispose (), как это работает сегодня.

private IMongo _mongo;

public MongoSession()
{         
    _mongo = Mongo.Create("connString");      
} 

public void Dispose()
{
    _mongo.Dispose();
}

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

Достаточно ли этого подхода, чтобы не рисковать, оставив слишком много открытых соединений, или мне следует сделать что-то вроде метода, приведенного ниже?

   public void Add<T>(T item) where T : class, new()
   {
       using (var mongo = Mongo.Create("connString"))
       {
         mongo.GetCollection<T>().Insert(item); 
       }
   }

Еще один дополнительный вопрос:

Открытие и закрытие соединений MongoDB с помощью Norm «дорогостоящие» операции?

11
задан Kimpo 7 February 2012 в 07:16
поделиться