MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Norm.MongoException:Przekroczono limit czasu połączenia podczas próby uzyskania połączenia z puli połączeń

Vinnie,

Nigdy nie korzystałem z Ninject, więc mógłbym się pomylić z tą sugestią. Ale wydaje się możliwe, że posiadanie statycznej instancji MongoSession może utrzymywać otwarte połączenia. Czy próbowałeś TransientBehavior zamiast SingletonBehavior? A może zmienić kod, aby wywołać Dispose (lub użyć using) po przekonwertowaniu skrótów na listę? Wszystkie

var shortcutLionks = _session.All<ShortcutLinks>().ToList();
_session.Dispose();

Lepszym podejściem może być użycie pewnego rodzaju repozytorium lub DAO, w którym szczegóły sesji są ukryte przed kontrolerem. Mam próbkę RepositoryBase pod adresem http:// /www.codevoyeur.com/Articles/20/A-NoRM-MongoDB-Repository-Base-Class.aspx .

Stuart Harris ma podobną, prawdopodobnie bardziej kompletną implementację pod adresem http://red-badger.com/Blog/post/A-simple-IRepository3cT3e-implementation-for-MongoDB-and-NoRM.aspx

Połączenia w puli MongoDB są stosunkowo tanie w tworzeniu, więc prawdopodobnie najlepiej jest upewnić się, że metody dostępu do danych zostaną usunięte po zakończeniu pobierania/zapisywania danych.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy istnieje sposób na atomową aktualizację dwóch kolekcji w MongoDB?

  2. Chmura hybrydowa a pełna chmura publiczna — zalety i wady

  3. Jak rozwiązać błąd SQLdecode podczas migracji modeli w django?

  4. Jaka jest najlepsza struktura danych do przechowywania tych danych w mongoDB?

  5. Jak połączyć dwa wyciągi $i w wyciągu $lub w mongodb?