高分求教

prqin 2003-10-17 02:09:48
进日在用asp.net+sql server开发一个程序时碰到了一个问题
错误提示是
“超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。 ”
请问这是什么原因造成的,连接池的大小是否可以设定?我在连接完一般都马上释放连接的,怎么也会出现这种问题?
...全文
45 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
prqin 2003-11-14
  • 打赏
  • 举报
回复
顶~
gOODiDEA 2003-11-14
  • 打赏
  • 举报
回复
第一次取出来后就放进cache中保存
prqin 2003-10-17
  • 打赏
  • 举报
回复
那个程序大致的意思是从数据库里取出image类型的数据,可能有100多个,然后显示在页面上.我用sql跟踪看了一下,确实对数据库的消耗很大,各位有什么比较好的方法吗
srj911 2003-10-17
  • 打赏
  • 举报
回复
可能是连接错误
yaotiebing 2003-10-17
  • 打赏
  • 举报
回复
用SQL Server .NET 数据提供程序池化

如果正在使用SQL Server .NET数据提供程序,那么就可使用该提供程序提供的链接池化支持特性。它是由提供程序在托管代码内内置实现的对事务敏感的高效机制。每个过程都将创建池,并且直到过程结束,池才被取消。

你可以透明地使用此种链接池,但应当清楚池是如何被管理的,并要知道可以用哪些选项来调整链接池。

如何配置SQL Server .NET数据提供程序链接池

可以使用一组名称-值对以链接字符串的形式配置链接池。例如,可以配置池是否有效(默认是有效的),池的最大、最小容量,用于打开链接的排队请求被阻断的时间。下面的示例字符串配置了池的最大和最小容量。

"Server=(local); Integrated Security=SSPI; Database=Northwind;
Max Pool Size=75; Min Pool Size=5"
当链接打开,池被创建时,多个链接增加到池中以使链接数满足所配置的最小值。此后,链接就能增加到池中,直到配置的最大池计数。当达到最大计数时,打开新链接的请求将排队一段可配置的时间。

选择池容量

能建立最大极限对于管理几千用户同时发出请求的大型系统来说是非常重要的。你需要监视链接池及应用程序的性能,以确定系统的最优池容量。最优容量还要依赖于运行SQL Server的硬件。

在开发期间,也许需要减小默认的最大池容量(目前是100)以帮助查找链接泄漏。

如果设立了最小池容量,那么当池最初被填充以达到该值时,会导致一些性能损失,尽管最初链接的几个客户会从中受益。注意,创建新链接的过程被序列化了,这就意味着当池最初被填充时,服务器无法处理同时发生的请求。

关于监视链接池的更多信息,见本文监视链接池一节。关于链接池链接字符串关键字的完整列表,见http://msdn.microsoft.com/library/en-us/cpguide/html/cpconconnectionpoolingforsqlservernetdataprovider.asp。

更多信息

在使用SQL Server .NET数据提供程序链接池时,必须清楚:

· 链接是通过对链接字符串精确匹配的法则被池化的。池化机制对名称-值对间的空格敏感。例如,下面的两个链接字符串将生成单独的池,因为第二个字符串包含了一个额外的空字符。

SqlConnection conn = new SqlConnection(
"Integrated Security=SSPI;Database=Northwind");
conn.Open(); // Pool A is created

SqlConmection conn = new SqlConnection(
"Integrated Security=SSPI ; Database=Northwind");
conn.Open(); // Pool B is created (extra spaces in string)
· 在.NET框架Beta版中,当在调试器中运行时,链接池化总是失效了。在调试器外,对调试版和发行版,链接池都能正常运作。.NET框架的最终发行版(RTM)取消了这种限制,链接池在所有情况下都能运行。

· 链接池被划分为了多个特定于事务的池和一个用于目前没有列在事务中的多个链接的池。对于与特定事务上下文相关的线程,将从合适的池(包含了在特定事务中的链接)中返回链接。这使得使用已建立的链接成为透明过程。

acewang 2003-10-17
  • 打赏
  • 举报
回复
显示打开,显示关闭
hillseok 2003-10-17
  • 打赏
  • 举报
回复
connection.open以后别忘了释放connection.close
tohen 2003-10-17
  • 打赏
  • 举报
回复
運行NET STOP W3SVC
NET START W3SVC
rgbcn 2003-10-17
  • 打赏
  • 举报
回复
If you are not explicitly Closing your connection objects and setting them to Nothing, .NET doesn't always release the garbage collection as you had hoped and you will end up with orphaned connections. Always set all objects to Nothing using .NET or you will run into issues
rgbcn 2003-10-17
  • 打赏
  • 举报
回复
connection 对像有没有释放
prqin 2003-10-17
  • 打赏
  • 举报
回复
不是每次都有这个问题,但当连续点击特定页面次数一多时,就会出这样的错误提示,要重启iis服务才能继续正常浏览

62,041

社区成员

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

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

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

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