tomcat+jsp+sql2000 运行1小时后变得极慢,救命!

Fly1980 2006-03-23 03:44:07
tomcat+jsp+sql2000 运行1小时后变得极慢,数据库服务器跟tomcat不是同一台机器。
有4个客户一直在正常使用,约1小时后刷新页面变得非常慢,经查看发现数据库服务器的
CPU一直是100%(就是SQL进程占用着),而且所有客户不再提交页面后,其CPU使用率也
没有降下来,只有关闭TOMCAT后才降下来。
查看TOMCAT日志发现有很多如下信息:
Servlet.service() for servlet jsp threw exception
java.io.IOException: Stream closed

这是怎样导致的,怎么解决??
请高手救救我吧!
注:我们的数据库中有部分表有二进制字段。
...全文
327 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
airskys 2006-03-29
  • 打赏
  • 举报
回复
你试试用tomcat的连接池
极大可能性是你没有关闭不用的数据库连接
abo58182 2006-03-28
  • 打赏
  • 举报
回复
jsp里面有没有调用自定义的函数或存储过程?
如果存储过程或函数里面创建了非临时表,会有问题的
Fly1980 2006-03-28
  • 打赏
  • 举报
回复
没有用连接池
发现有3个jsp中没有关闭连接,关闭之后该问题就没有了.
不知道是巧合还是真的改好了.!!

为什么才3个jsp页面泄露,会导致这么快就导致这么严重的事情?
(我曾尝试在某jsp页种循环1000次,让连接泄露,却也不出问题,着又是为什么呢?
希望高手耐心为我解惑.
谢谢了!!!
lhbf 2006-03-24
  • 打赏
  • 举报
回复
如果连接正常关闭了,那么你用的连接池有问题的可能性大。换一个连接池试试看。
Fly1980 2006-03-23
  • 打赏
  • 举报
回复
这样应该能够彻底关闭连接吧?
是不是TOMCAT的配置问题呢?

为什么会导致数据库服务器CPU忙呢?。。。。
郁闷!!

各位高手,帮帮忙啊!
Fly1980 2006-03-23
  • 打赏
  • 举报
回复
我的代码是这样写的(伪代码):
conn = null;
stmt = null;
rs = null
try
{
conn=sfca.common.ConnectionManager.getConnection();
stmt=conn.createStatement();
rs = stmt.executeQuery(sql);
while(rs.next())
{
....
}
}
catch(Exception e)
{
e.printerror();
}
finally
{
if( rs != null )
rs.close();
if( stmt != null )
stmt.close();
if( conn != null )
conn.close();

}
terry_yip 2006-03-23
  • 打赏
  • 举报
回复
%90是你的连接没有关闭。给你一段砌底关闭连接的代码吧

try
{
conn=sfca.common.ConnectionManager.getConnection();

try
{
stmt=conn.createStatement();

try
{
rs=stmt.executeQuery(sql);
while(rs.next())
{
}
}
finally
{
rs.close();
rs=null;
}

}
finally
{
stmt.close();
stmt=null;
}
}
finally
{
conn.close();
conn=null;
}
aywrenyue 2006-03-23
  • 打赏
  • 举报
回复
通常访问量如何
---------------
主要是看并发数量
------------------
是不是数据库用完没有释放
-----------------------
建议检查代码
fxy1 2006-03-23
  • 打赏
  • 举报
回复
1、在服务器上加内存条,你的机子做服务器才512内存,太小了。
2、加在Tomcat占内存量。一般Tomcat只使用128的内存,你可能通过加参数,来扩大Tomcat的内存占用量。细节你可以在网上查很多的。
wizardblue 2006-03-23
  • 打赏
  • 举报
回复
去查查连接池之类
Fly1980 2006-03-23
  • 打赏
  • 举报
回复
cpu:2.8G
内存:512M
win2000 server
wizardblue 2006-03-23
  • 打赏
  • 举报
回复
不会吧?你的机器什么配置?

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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