超时时间已到。超时时间已到 但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用 并且达到了最大池大小。

shilifeng 2009-08-27 10:50:02
如题:最近我做的一个网站,访问量并不是非常大,但经常出现上述错误,过一会就好了。我用的微软的SqlHelper数据库操作库,所有连接打开后都关闭。怎么还出现这种情况,请高后指点。连接池是默认的没有改。
...全文
34133 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
灰鸽 2012-10-24
  • 打赏
  • 举报
回复
good
Code维护者 2012-10-09
  • 打赏
  • 举报
回复
我的是用:
SqlDataAdapter sda = new SqlDataAdapter(sql, GetConnstr());
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
这样没有关闭连接吗?在哪里关闭啊 ?
yoo39263 2012-09-06
  • 打赏
  • 举报
回复
最烦楼主这样的人,有问题就求爷爷告奶奶,问题呢解决了就滚蛋了。
yhhkls 2011-12-25
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 luckyzerg 的回复:]
谢谢啊!!问题解决了
[/Quote]
你好,请问怎么解决的啊?我也出现了同样的问题,但是看程序中确实是DataReader之后关闭连接了啊
LuckyZerg 2011-11-08
  • 打赏
  • 举报
回复
谢谢啊!!问题解决了
l776220268 2011-10-26
  • 打赏
  • 举报
回复
你看看CONNECTION是不是没有关,:
在一个,你去WEB.config 里面:在数据库连接加 Max Pool Size = 512;server=;uid=;pwd=;database=;Max Pool Size = 512;"这个改动一下试试看,最好不要用dataReader,太占用资源了,用dataset。希望对你有帮主
xiaoniqiu51 2011-07-20
  • 打赏
  • 举报
回复
现在我这 也出现了这样的问题!
liuleiyu121520 2011-01-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 anton 的回复:]
一般都是DataReader用了之后没关掉,特别是你设定了个定时的程序(比如定时取当前用户消息数啦),很快就会出现你说的问题
[/Quote]
但是我的关掉了。
fuda_1985 2009-09-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ap0533126 的回复:]
我也出现跟楼主一样的问题。

我检查了一下代码,发现出现问题的那个页面里,数据控件都是用后台代码写dataset绑定的,
同时调用了timer控件定时更新,最终导致页面数据库连接超时。所有池连接均在使用,并且达到了最大池大小。

不知道你的是不是这个问题,优化一下后台程序,尽量把有timer控制的UpdatePanel中的数据读取去掉。
或者可以的话,用自带的数据源控件连接数据库。就可以解决啦!!!
[/Quote]
这一个可能性高~一般dataset会自动关闭连接,但是也得dataset释放时才有用!~
working1997 2009-09-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 anton 的回复:]
一般都是DataReader用了之后没关掉,特别是你设定了个定时的程序(比如定时取当前用户消息数啦),很快就会出现你说的问题
[/Quote]

正解
Anton 2009-09-17
  • 打赏
  • 举报
回复
一般都是DataReader用了之后没关掉,特别是你设定了个定时的程序(比如定时取当前用户消息数啦),很快就会出现你说的问题
ap0533126 2009-09-16
  • 打赏
  • 举报
回复
我也出现跟楼主一样的问题。

我检查了一下代码,发现出现问题的那个页面里,数据控件都是用后台代码写dataset绑定的,
同时调用了timer控件定时更新,最终导致页面数据库连接超时。所有池连接均在使用,并且达到了最大池大小。

不知道你的是不是这个问题,优化一下后台程序,尽量把有timer控制的UpdatePanel中的数据读取去掉。
或者可以的话,用自带的数据源控件连接数据库。就可以解决啦!!!
chen_ya_ping 2009-08-27
  • 打赏
  • 举报
回复
查看连接是不是没有被关闭。连接打开以后要及时的关闭
aaa1810 2009-08-27
  • 打赏
  • 举报
回复
常用的连接没必要着急关闭吧?
zhulong1111 2009-08-27
  • 打赏
  • 举报
回复
连接释放是需要一段时间的,
zhulong1111 2009-08-27
  • 打赏
  • 举报
回复
可以设置连接池的个数,还有就是每次连接就要关闭!最好用官方的sqlHelper 一般不会出现这中情况。
shilifeng 2009-08-27
  • 打赏
  • 举报
回复
期待高手
haa17 2009-08-27
  • 打赏
  • 举报
回复
超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: 超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。

这是个老问题了!你就查两点:
一、看所有open的连接是否都close了。
二、如果访问量很大,加上Max Pool Size=512这一句,当然这是要以损失系统性能为代价的!
这样以后一定可以解决你的问题!

解决方案一

我 想原因可能是并发操作。DataReader是独占连接的,就是说你的程序可能设计上有问题。比如说最大连接设100,假设有100个人同时使用 DataReader正在读取数据库内容,那么当第101人读取的时候,连接池中的连接已经没有了,就会出现上面的错误。DataReader是独占连接 的,每个DataReader都要占用一个连接。当然这个情况是偶尔出现的,所以会很长时间出现一次,因为只有同时有超过连接池最大连接数量的并发操作才 会发生。而且你加大并发数量只能暂时缓解问题,如果你加大到200个并发连接,如果有201 人同时操作怎么办?你说了你使用Connection对象的Close()方法,这是不行的,因为Close()方法仅仅是关闭连接,但这个连接没有释 放,还是被这个对象占用,要释放必须使用Connection的Dispose()方法显式释放连接才可以,否则这个对象占用的连接只能等到垃圾收集的情 况下才能被释放。这种情况肯定会出现“超时时间已到”的错误。

解决方法:
1 修改几个关键页面或访问比较频繁的数据库访问操作,使用DataAdapter和DataSet来获取数据库数据,不要使用DataReader。
2 在访问数据库的页面上使用数据缓存,如果页面的数据不是经常更新(几分钟更新一次)的话,使用Cache对象可以不用访问数据库而使用缓存中的内容,那么可以大大减少连接数量。
3 修改代码,把使用Connection对象的地方都在Close()后面加上Dispose()调用。
4 建议对数据库操作进行大的修改,建立自己的数据库操作代理类,继承System.IDisposable接口,强迫释放资源,这样就不会出现连接数量不够的问题了。

解决方案二

解决方法(*):WEB.config 里面:在数据库连接加 Max Pool Size = 512;server=local;uid=;pwd=;database=2004;Max Pool Size = 512;">一劳永逸。

解决方案三

估计是连接(Connection)对象没有Close。倒是不必Dispose,而DataReader用完后应该关闭,但不关闭也没问题,只是不关闭的话此连接对象就一直不能用,只要你最终关闭了连接对象就不会出问题。

连接对象在Open后的操作都放在try块中,后面跟一个finally块:conn.Close();

错误: 3154一般是由于恢复数据库备份时指定的数据库名和原有数据库中数据库相同引起的
你指定一个不易重复的名字,
或者在恢复时指定选项:覆盖现存数据库

本人在将SQL2000数据库导入SQL2005出错,错误信息如下:

还原 对于 服务器“EDWARD\\TRACY”失败。 (Microsoft.SqlServer.Smo)

有关帮助信息,请单击: http://go.microsoft.com/fwlink?Prod...er&LinkId=20476

------------------------------
其他信息:

执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------

备份集中的数据库备份与现有的 \'foodgood\' 数据库不同。
RESTORE DATABASE 正在异常终止。 (Microsoft SQL Server,错误: 3154)

今天我准备把sql2000 的备份数据库 sp.bak 还原在sql2005 上 (因为课堂上用的是sql2000 而我自己电脑里装的是sql2005 )遇到了点麻烦。就是象sql2000 一样操作还原时出现了点问题。说不能还原,最后找到了点方法终于搞定。

1,在sql2005上新建一个数据库比如:商品


2,选择要还原的 sql2000备份文件

3,这里很重要,选中“覆...”看图

sql2000 备份的数据库还原到sql2005后,选择“数据库关系图”提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数 据库属性”对话框的“文件”页或 ALTER AUTHORIZATION 语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象。

解决方法如下:
1、设置兼容级别为90(2005为90)
USE [master]
GO
EXEC dbo.sp_dbcmptlevel at dbname='数据库名', @new_cmptlevel=90
GO

或是选责你还原的数据库,点右键,选属性->选项->兼容级别,选择sqlserver2005(90) 然后确定,

这时,你在该数据库下展开“数据库关系图”节点时会有个提示,"此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选择“是”即可。

2、通过以上的方法操作,如果问题依然存在的话,按下列方法继续

选择你的数据库,然后选择"安全性"->"用户",选择dbo,打开属性页,如登录名为空的话,新建查询,然后

use [你的数据库名]
EXEC sp_changedbowner 'sa'

执行成功后,你再选择"数据库关系图"节点,时提示 “此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选择“是”即可。 就可以看到原先建的关系图了。

1、 对Table中的详细内容,以不同的颜色间隔开相邻的两行。

A:选择Table的Detail行,选择属性中的BackgroundColor,值选择表达式,输入:=iif(RowNumber(Nothing) Mod 2, "White", "Beige")。

2、设置每面显示Table表头或表尾

A:选择Table Header或Table Footer,将属性中的RepeatOnNewpage设为True dot

3、在每页都显示放入的图片或标题头等信息。

A:只须在Table Header中加行数,把你要显示的内容放到单元格中,然后再按第二条方式设置后就可以了。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lee576/archive/2008/02/24/2116360.aspx

shilifeng 2009-08-27
  • 打赏
  • 举报
回复
主要是程序报那个错误,怎么解决。有那位高手见过,请详细给讲一下。
shilifeng 2009-08-27
  • 打赏
  • 举报
回复
所有连接打开后都关闭
我们从小的教育就是如何拆分问题、解决问题,这样做显然会使复杂的问题变得更容易些。但是这带来一个新问题,我们丧失了如何从宏观角度看问题,分析问题,解决问题,对更大的整体的内在领悟能力。这导致了我们对现有问题提出的解决方案,但无法预计实施该方案后产生的各种后果,为此我们付出了巨大代价。而我们试图考虑大局的时候,总要在脑子里重新排序,组合哪些拆分出来问题,给它们编组列单。习惯性认为解决了所有微观领域的问题,那么宏观上问题就得到了解决。然而,这种做法是徒劳无益的,就好比试图通过重新拼起来的碎镜子来观察真实的影像。所以在一段时间后,我们便干脆完全放弃了对整体的关注。当今的社会,几乎所有的企业情况都是岗位职责清晰,分工明确,员工是企业机器上的一颗螺丝钉,我们在招聘下属的时候也仅仅是用他的一技之长。项目一旦立项,我们就根据项目需求针对性性的招聘,短短半年团队就会膨胀数倍,但效率并不是成正比增长。另一个问题是这个庞大的团队合作起来并不尽人意。结果是 80% 协调的时间,20% 实际工作时间。 课程设置: 多维度架构之监控多维度架构之日志多维度架构之超时时间多维度架构之网络延迟多维度架构之DevOps多维度架构之容器 

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧