soy muy nuevo en MongoDB y NoSQL en general y Acabo de comenzar la construcción de un sitio con MongoDB/Norma/ASP.NET MVC 3.¿Cuándo debería abrir y cerrar las conexiones de MongoDB?
Me pregunto cómo yo debería ser la determinación del alcance de las conexiones a mi base de datos Mongo .
Ahora tengo un controlador de base que instancia MongoSession y onActionExecuted lo desecho para que todos mis controladores derivados tengan acceso a mi MongoSession. La clase MongoSession abre una conexión en su constructor y la descarta en Dispose(), la forma en que está funcionando hoy.
private IMongo _mongo;
public MongoSession()
{
_mongo = Mongo.Create("connString");
}
public void Dispose()
{
_mongo.Dispose();
}
Estoy un poco preocupado de que pueda estar manteniendo las conexiones abiertas demasiado tiempo si estoy haciendo otras cosas también en los controladores.
¿Es ese enfoque suficiente para no arriesgar la celebración de demasiadas conexiones abiertas o debería hacer algo más como el siguiente método de ejemplo?
public void Add<T>(T item) where T : class, new()
{
using (var mongo = Mongo.Create("connString"))
{
mongo.GetCollection<T>().Insert(item);
}
}
Otra seguimiento pregunta es:
se están abriendo y cerrando las conexiones a través de MongoDB Norma operaciones "caros"?
Norma apenas se mantiene más, si quieres soporte LINQ ir con conductor mongo funcionario de FluentMongo en la parte superior de la misma. –
Además de esta cuestión de abrir y cerrar conexiones en el código, tuve problemas con las conexiones de cierre del proveedor de Internet, entonces mi código tenía EndOfStreamException. Lo resolví usando settings.MaxConnectionIdleTime = TimeSpan.FromSeconds (30); https://stackoverflow.com/a/44606284/194717 – Tony