C# 扩展NHibernate DriverConnectionProvider类
我正在开发一个旧的web应用程序。它扩展了NHibernate的C# 扩展NHibernate DriverConnectionProvider类,c#,asp.net-mvc,oracle,nhibernate,C#,Asp.net Mvc,Oracle,Nhibernate,我正在开发一个旧的web应用程序。它扩展了NHibernate的DriverConnectionProvider,以发出db连接。下面是代码 public class NewConnectionProvider : DriverConnectionProvider { public override System.Data.IDbConnection GetConnection() { IDbConnection conn = base.GetConnection()
DriverConnectionProvider
,以发出db连接。下面是代码
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;" />
公共类NewConnectionProvider:DriverConnectionProvider
{
public override System.Data.IDbConnection GetConnection()
{
IDbConnection conn=base.GetConnection();
//在此处执行SP..以设置要连接的代理用户
//甲骨文数据库
返回连接;
}
}
//连接字符串
问题:我们遇到的问题是#个连接被加至连接字符串的
最大池大小。有时我们会遇到连接超时错误。在这种情况下,连接池是如何工作的?我是否也需要覆盖驱动器连接提供程序.CloseConnection
?如果是,我需要什么时候打电话?系统正在使用NHibernate、Oracle 11g。显示连接从未关闭。您可能需要实施
public void CloseConnection(IDbConnection connection)
在您的ConnectionProvider中