最近做了个网站,纯JSP的,用了连接池,数据库是MSSQL2000,网站已经上线运行了,但是很奇怪每过一个星期网站就会死掉一次,我上服务器一看,内存全部被MSSQL占用满了(服务器内存有1G),我重新启动下服务网站又好了。而且还有件很怪的事,我TOMCAT的根目录下,有大量.tmp文件。
解决方案 »
- 如何获得当前登录用户的用户名
- 请大家看看这个servlet中的方法有什么错误,多谢多谢
- 求教jsp用ftp上传文件的问题
- jsp连接SQL-Server,调用last()函数不支持
- 讨论:是否可以认为servlet/jsp中只要不涉及服务器端数据库的客户请求,都可以用javascript替代?
- 那里有MySQL数据库的驱动程序啊???
- 有什么工具可以监控Tomcat的资源状况
- 为什么script中的函数不能相互调用?
- JSP与BEAN--当JSP中出现复选框时
- 怎么使用 MS SQL server的JDBC驱动
- 如何用javascript来写提交表单的请求,我用是button,不是submit,给出代码好吗?
- web.xml修改后是不是要重启tomcat才生效
finally{try{
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.releaseConnection(defaultname,con);
}catch(Exception e){
e.printStackTrace();
}
}
请问conn.releaseConnection(defaultname,con)有什么不同吗?
初始化对象后,没有清除对象,set ....=null
200分呢!总会有高手过来,让高手们点评一下,也可让大家学习一下!学习中!
老问题了
MSSQL好像可以查有几个数据库连接和连接多久
用多少内存但是语句就忘记了
我用的是proxool连接池,proxool包里有个Servlet类AdminServlet,可以查看当前连接情况(显示当前是否有连接没关),我在网站上线前每打开一个页面就查看下这个Servlet,但是所有的连接都是关了的,<%@ include file="common/connection.jsp"%>
<%
ResultSet rs = null;
try {
rs = stmt.executeQuery(sql);
if(rs.next()){
//do Something;
}
}
finally {
rs.close();
stmt.close();
stmt1.close();
conn.close();
}
%>
基本上每个页面都是这样处理的,有的页面逻辑复杂的,就多几个这样的try块。
Connection conn = null;
Statement stmt = null;
Statement stmt1 = null;
try {
conn = DriverManager.getConnection("proxool.web");
stmt= conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
stmt1= conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
catch(Exception e) {
return;
}
1 mssql对于用jdbc连接的java应用不是太好,个人觉得mysql可能还更加合适
2 另外对于tomcat的内存使用配置也可能要作相应的调整
3 也许程序中其他的地方(不光是数据库连接池),如线程,文件读写,socket联接同样也会造成内存泄漏
.tmp文件里是什么内容?
finally {
rs.close();
stmt.close();
stmt1.close();
conn.close();
}你想想如果rs或者stmt是null,则在finally里面又得到一个空指针异常,后面的语句不能执行,所以代码最好改成:
finally {
if(rs!=null) rs.close();
if( stmt!=null) stmt.close();
if(stmt1!=null) stmt1.close();
conn.close();
}
怎样限制sqlserver的内存使用上限?
怎样限制sqlserver的内存使用上限?
怎样限制sqlserver的内存使用上限?
怎样限制sqlserver的内存使用上限?
怎样限制sqlserver的内存使用上限?
怎样限制sqlserver的内存使用上限?
怎样限制sqlserver的内存使用上限?
数据库 -> 属性 -> 内存 -> 动态的配置 -> 最大值。调整到 1/3 就够了。
最好是SQL SERVER单独使用一台机器做数据库服务器。
配置连接池时最好也设置一次打开连接的最大与最小数目。
根目录下有大量的TMP文件,肯定是程序问题,建议看一下TMP的名字,然后找一下源代码,看是否源代码里面重复生成了该文件