【发布时间】:2012-09-17 21:07:49
【问题描述】:
我正在尝试使用带有 SQL Server 2000 数据库的经典 ASP 编写的站点来解决问题。
网站似乎每隔几天就会出现故障。当您尝试访问该网站时,该网站没有任何响应。浏览器中的加载指示器会旋转,页面只是保持空白。
当我在站点关闭后运行 sp_who2 时,总是有一个进程占用了大量的 CPU 时间。此进程将阻塞数据库中的所有其他进程。
我可以通过终止此进程使网站再次运行。
我不知道发生了什么。当我查看该进程在锁定之前运行的存储过程时,它没有任何问题。运行此存储过程的页面将关闭所有连接对象。
关于什么可能导致这种死锁,或者我可以如何阻止它发生的任何想法?
【问题讨论】:
-
也许说的很明显……你确定开发者一直都关闭了所有的连接对象吗?
-
是的,刚查了一下网站,连接对象在页面底部关闭了。
-
这已经让人放心了.. 只有一个页面?你确定总是到达页面的末尾吗? (例如中间没有response.redirect,不关闭记录集和连接的错误处理等)
-
今天网站宕机时,我查看了网站崩溃前最后运行的查询是什么。这是一个只出现在我们的注册页面上的存储过程,所以我认为它只是导致这些问题的那个页面,但我不知道。该页面上有几个地方有重定向,所以我更改了页面,以便在此之前关闭连接。我还没来得及检查整个网站。
-
希望对您有所帮助...同时,我将使用我们过去使用的 vbscript 程序发布答案,以确保我们关闭 all 记录集和连接。
标签: asp-classic vbscript sql-server-2000