【发布时间】:2015-08-15 08:59:41
【问题描述】:
我正在开发一个旧的网络应用程序。它扩展了 NHibernate 的DriverConnectionProvider 以发出数据库连接。以下是代码。
public class NewConnectionProvider : DriverConnectionProvider
{
public override System.Data.IDbConnection GetConnection()
{
IDbConnection conn = base.GetConnection();
//execute a SP here.. to set up proxy user to connect to
//oracle db
return conn;
}
}
//connection string
<add name="connname" connectionString="Data Source=(DESCRIPTION =(ADDRESS_LIST = (ADDRESS =
(PROTOCOL = TCP)(HOST = .....)(PORT = ....)))(CONNECT_DATA = (SERVER = DEDICATED)
(SERVICE_NAME = ....)));Min Pool Size=5;Max Pool Size=500;Proxy User Id=....;
Proxy Password=.....;Validate Connection=True;Connection Timeout=100;" />
问题:我们遇到的问题是连接数增加到连接字符串的Max Pool Size。有时我们会收到连接超时错误。在这种情况下,连接池如何工作?我还需要覆盖DriverConnectionProvider.CloseConnection 吗?如果是,我什么时候需要打电话?系统使用NHibernate,Oracle 11g。
【问题讨论】:
标签: c# asp.net-mvc oracle nhibernate