我用ASP.NET MVC,NHibernate和MySQL做了一个网站。在我的项目中,我有一些repositories类,每个类都使用如下代码的方法:
using(ISession session = NHibernateHelper.OpenSession()) {
using(ITransaction transaction = session.BeginTransaction()) {
session.Save(cidade);
transaction.Commit();
}
}我来自Classic ASP,所以如果与MySQL的连接实际上是关闭的,我会很确定。事实上,如果有像经典ASP上那样的连接,我是常用的。
我应该做些什么来显式地关闭连接/会话,或者它是“自动关闭的”?
如果我的服务器上有很多打开的连接,有什么办法吗?
非常感谢。
发布于 2009-08-26 19:18:51
会话以一种非常有效的方式进行连接管理,所以您不必手动执行任何操作,只要您没有忘记释放会话(就像您一样)。在会话的整个生命周期中,连接并不是打开的,而是在需要时才打开。打开的数据库连接数不会超过连接池中的连接数,默认情况下连接池中的连接数为100。100个连接在几乎每个场景中都不会很多,所以当打开大量连接时,您不需要做任何事情。在一个非常繁忙的网站上,你甚至不会使用所有的100个连接,由于won请求的线程池的大小,它将是大约20-40个开放的连接。
https://stackoverflow.com/questions/1336589
复制相似问题