首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

初级有关问题:关于conn的释放

2013-03-12 
初级问题:关于conn的释放--------------------------------代码如下!--#include fileconn.asp--%id

初级问题:关于conn的释放
--------------------------------

代码如下

<!--#include file="conn.asp"-->

<%
id=request.form("id")
set rs=server.CreateObject("adodb.recordset") 
sqlstr="select * from table where id="&request.form("id")
rs.open sqlstr,conn,1,3
*
*
*
rs.update
rs.close
set rs=nothing
%>
<%
response.Redirect("edit.asp")
%>
<%
conn.close
set conn=nothing
%>

--------------------------------

1、在这种写法下,response.Redirect("edit.asp")直接就跳转到edit.asp,并未能执行conn.close
我搜索资料,看见说用户、并发多的话,这是一种资源浪费。
但是跳转回去edit.asp后,其实也要打开数据库,也就是重新打开conn。
跳转前打开的conn和跳转后的conn,计为2个吗?还是1个?
2、同样rs不关闭也是资源浪费?
[解决办法]
关闭了再跳,跳过去要打开,再重新打开,用完再关闭
[解决办法]
主要是conn和rs都是一个进程开一个的,IIS很弱,不会共用。tomcat有连接池,但也要显示返回。所以随手关闭是个好习惯。也可以include 页头页尾,在这里统一连接统一关闭,防忘记。
[解决办法]
1 连接在每个页面打开,用完及时关闭,跳转前要关闭Set为Nothing,rs也是。不要用session等共享连接,会有100% CPU问题。
2 ODBC本身有连接池,一般不需要客户端去管理。这个和Web服务器无关。
[解决办法]
最好关闭了才跳转。不然资源浪费。
[解决办法]
完全可以conn.close之后再response.Redirect
不过如果网站结构不是很大的话,也可以不管conn,但是rs最好是随时close掉

热点排行