¿Hay alguna forma de configurar globalmente el tiempo que esperaría para conectarse a una base de datos determinada, antes de que falle la conexión en NHibernate (tiempo de espera de conexión)? En ADO.NET puedes hacerlo para una sola conexión como esta:
new SqlConnection().ConnectionTimeout = 10;Encontré cómo configurar el tiempo que esperaría un conjunto de resultados, antes de que falle la ejecución del comando aquí (tiempo de espera del comando). Pero, aparentemente, eso no es lo que necesito.
Puede usar la configuración connection_timeout en su código de configuración de NHibernate. Consulte la sección 3.4 de la documentación para obtener detalles completos.
La configuración XML para esto es la siguiente...
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> <session-factory> <property name="dialect">NHibernate.Dialect.MsSql2012Dialect</property> <property name="connection.connection_string"> Server=(local);initial catalog=theDb;Integrated Security=SSPI </property> <property name="connection_timeout">100</property> </session-factory> </hibernate-configuration> <!-- other app specific config follows -->Estoy usando Fluent NHibernate, por lo que mi código de configuración es el siguiente...
FluentConfiguration configuration = Fluently.Configure() .Database(MsSqlConfiguration.MsSql2012.ConnectionString(ConnectionString)) .ExposeConfiguration(cfg => cfg .SetProperty("connection_timeout", "100") .Mappings(m => { var cfg = CreateAutomappings(); m.AutoMappings.Add(cfg); });Puede configurarlo en la cadena de conexión, "Tiempo de espera de conexión = x".
Con NHibernate puede proporcionar la conexión usted mismo:
sessionFactory.openSession(myConnection);No lo recomendaría, porque es más fácil cuando NHibernate administra las sesiones.
Todavía puede escribir su propio proveedor de conexión, que establece lo que quiera en las conexiones creadas.