`
javatoyou
  • 浏览: 1022299 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

超时时间已到,但是尚未从池中获取连接

 
阅读更多

“/ASP.Web”应用程序中的服务器错误。
--------------------------------------------------------------------------------

超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
说明: 执行当前 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中加行数,把你要显示的内容放到单元格中,然后再按第二条方式设置后就可以了。

分享到:
评论

相关推荐

    c# log 日志 单体 管理

    超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。 file:DataBaseHlper.cs : 52 2012-10-23 10:15:23 [Error]: connect database error . file: : 0 2012-...

    Windows 系统错误代码简单分析

     0140 系统试图将驱动器连接到已替换的驱动器的一个目录中。  0141 系统试图将驱动器替换成到已连接的驱动器下的目录。  0142 此时系统无法运行 JOIN 或 SUBST。  0143 系统无法将驱动器连接到或替换成...

    Microsoft SQL Server 2005 Express Edition SP3

    未及时包括在本自述文件中的任何有关 SQL Server 2005 和 SQL Server Express 的信息都将发布到 Microsoft 知识库文章 907284 中。 [顶部] 3.0 安装问题 本部分详细介绍此版本中的安装问题。 3.1 现有的 SQL ...

    wait-side-car:等待基本的侧向集装箱可用

    如果Envoy尚未从xDS API获取上游主机/路由,请重试运行状况不佳的响应。 如果Envoy响应正常,请停止重试。 在--timeout毫秒后使所有等待过程超时。 即使超时,也请继续执行下一步(此处的超时并非失败)。 调用...

    IIS6.0 IIS,互联网信息服务

    其操作步骤如下: (1)请确保已先在DNS服务器中将你这两个域名都已映射到了那个IP地址上;并确保所有的Web站点的端口号均保持为80这个默认值。 (2)再依次选“默认Web站点→右键→属性→Web站点”,单击“IP地址”...

    易语言程序免安装版下载

     静态编译后的易语言EXE/DLL之间不能再共享譬如窗口、窗口组件等类似资源,对于已经静态连接到一个EXE/DLL中的支持库,该支持库中的数据或资源将不能再被其它EXE/DLL中所使用的同名支持库访问。这是因为代码被分别...

    Patreon Downloader-crx插件

    语言:English 从Patreon提要下载图像 ...图片将下载到指定文件夹中以帖子标题命名的子文件夹中的downloads / Patreon_Downloader /中。 警告:如果尚未设置默认的下载目录,则必须手动选择每个图像的保存

    标准MFC WinSock ActiveX控件开发实例(II)高级篇

    //获取数据,并指定获取数据的超时时间,返回实际获取到的数据长度,否则返回负数 long CMFCWinSockCtrl::GetData(VARIANT FAR* Data, const VARIANT FAR& DataType, const VARIANT FAR& DataMaxLength, ...

    测试培训教材

    但是还需要修改以前Project的数据库连接属性 否则会提示错误 然后还要修改 C:\Program Files\Mercury\Quality Center\repository\qc中的dbcon.txt: qcsiteadmin_db@192.168.1.12.1433. 还有 C:\Program Files\...

    华为编程开发规范与案例

    经过跟踪变量值发现循环变量i的阀值pSysHead->dbf_count的数值为0xFFFFFFFF,该值是从被破坏的内存数据库中获取的,正常情况下该值小于127。而pDBFat是数据库的起始地址,如果pSysHead->dbf_count值异常过大,将...

Global site tag (gtag.js) - Google Analytics