超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。 !
前面发的帖,由于自己回复超过3次无法继续了,总结下
最近遇到这个问题很头疼,百度的各种办法均不管用。
首先我这个数据库访问没有使用DataReader 也不存在未释放的Connection
执行的操作是批量数据插入 大概10000-100000条
1、我最初用了一个整体提交的事物。后来看网上说这样有可能导致超时,我把整体提交拆分成
每5000条一个事物的提交方式,依然超时。
2、web.config修改了添加了Max Pool Size=512 问题依旧
3、数据库为Oracle 以为是连接数问题,修改Sessions 数为1536 Processes 为1000 问题依旧
4、在本地vs2010调试插入正常,但在服务器上就出此异常
5、在执行插入的时候用PL/SQL发现Oracle 的Sessions猛增
请问各位我这是什么情况?
环境 服务器Win2003 DotNetFramework 4.0 补丁全打 IIS 6.0
数据库访问层的代码
GetCommand();
System.Data.Common.DbTransaction trans = dbCommand.Connection.BeginTransaction();
dbCommand.Transaction = trans;
try
{
for (int i = 0; i < listEntity.Count; i++)
{
string Sql = string.Empty;
System.Data.Common.DbParameter[] parms = GetSqlString(ref Sql, listEntity[i]);
BuildSqlCommandWithoutReturn(Sql, parms);
if (dbCommand.ExecuteNonQuery() < 0)
{
trans.Rollback();
CloseConnection();
return false;
}
dbCommand.Parameters.Clear();
}
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw ex;
}
finally
{
CloseConnection();
}
return true;
------解决方案--------------------
还是得检查代码,看看哪里的connection没有释放。
------解决方案--------------------
肯定是连接未关闭
从你的代码上,虽然没看出来
,应该是别的地方的连接问题