首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Server.CreateObject("ADODB.Connection")的经典ASP中的连接泄漏

问使用Server.CreateObject("ADODB.Connection")的经典ASP中的连接泄漏
EN

Stack Overflow用户
提问于 2011-10-25 21:41:18
回答 1查看 2.8K关注 0票数 1

我正在研究一个现有的经典asp应用程序。设置如下:

conn.open

  • func.asp:

  • db.asp:使用Server.CreateObject("ADODB.Connection")打开一个连接,然后调用有助手方法来使用conn对象从
  • 构建查询并调用func.asp

中的方法来执行查询

index.asp和func.asp都包括db.asp。index.asp包括func.asp,没有conn.close调用的位置。

当请求结束时,

  1. 会自动关闭或恢复连接吗?
  2. ,当index.asp包含func.asp时,index.asp和func.asp包含db.asp意味着什么?多个connections?
  3. Are是否有计数器来检查正在建立的连接的数量?

我已经使用过sp_who2,但即使在不同的浏览器下运行,我也只能看到应用程序的1条记录。使用集成安全性和连接字符串中的sql帐户进行了尝试。

我查看了性能计数器,但数字从未改变。它们停留在5.MSSQL$Instance:General Statistics\Logical和MSSQL$Instance:General Statistics\User connections。

我们看到多达47个连接从应用程序在生产中,但我不能在本地复制它。连接被列为休眠连接,而不是执行连接。

在IIS 7.5下运行经典asp

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-25 22:15:40

  1. 不,连接仍然是打开的,但是数据库驱动程序最终会关闭它们。不过,这需要几分钟的时间,所以如果有很多访问者,就可以轻松地达到并发连接数量的数据库限制。
  2. 是的,如果打开连接的代码有多个包含,那么最终会有多个连接。如果连接存储在同一个变量中,则对前一个连接的引用将丢失,只需等待超时。
  3. 您可以查看same中的数据库会话。但是,您将很难看到返回到池的连接与等待超时的孤立连接之间的区别。

您应该确保每个连接和每个记录集都关闭并取消引用。示例:

代码语言:javascript
复制
rstData.Close
Set rstData = Nothing

conn.Close
Set conn = Nothing
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7896241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档