超时时间已到,可是还没有从池中获取链接

 

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

超时时间已到。超时时间已到,可是还没有从池中获取链接。出现这种状况多是由于全部池链接均在使用,而且达到了最大池大小。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中致使错误的出处的详细信息。 数据库

异常详细信息: System.InvalidOperationException: 超时时间已到。超时时间已到,可是还没有从池中获取链接。出现这种状况多是由于全部池链接均在使用,而且达到了最大池大小。 缓存

这是个老问题了!你就查两点: 
  1、看全部open的链接是否都close了。 
  2、若是访问量很大,加上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接口,强迫释放资源,这样就不会出现链接数量不够的问题了。 sqlserver

解决方案二 性能

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

解决方案三 spa

估计是链接(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  语句将数据库全部者设置为有效登陆名,而后再添加数据库关系图支持对象。 
    
解决方法以下:
一、设置兼容级别为90(2005为90)
USE  [master]
GO
EXEC  dbo.sp_dbcmptlevel  at dbname='数据库名',  @new_cmptlevel=90
GO  

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

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

二、经过以上的方法操做,若是问题依然存在的话,按下列方法继续

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

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

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

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

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

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

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

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

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

 
相关文章
相关标签/搜索