【重要!】tomcat运行过一段时间就死掉了,不能服务为什么?

jk3278jk 2004-04-27 07:06:49
我公司的网站系统使用tomcat4.1.29,数据库使用它的连接池。
现在遇到一个问题是tomcat运行一段时间,最多一个星期就会报错(一般报错是数据库连接打不开或根本连jsp都不解析了)

一开始怀疑是数据库连接池的资源没有释放,但后来检查代码没有这种情况。
现在还不明白是什么原因,哪位朋友遇到我相同的情况啊!

【问一下怎么看tomcat里的连接池的连接个数啊?


我的数据库操作类代码如下: 有内存漏洞吗?
===========================================

public class dba {
Connection conn = null;
Statement stmt = null ;
ResultSet rs = null;

public dba() {
}

/**打开数据库连接*/
public void open() {
try {

Context initCtx = new InitialContext();
if (initCtx==null) throw new Exception("不能获取Context!");
Context ctx = (Context) initCtx.lookup("java:comp/env");
//获取连接池对象
Object obj = (Object) ctx.lookup("jdbc/community");
//类型转换
javax.sql.DataSource ds = (javax.sql.DataSource) obj;
conn = ds.getConnection();

}
catch (Exception ex) {
this.close();
System.out.println("community:dba:open():数据库打开失败!");
}
}


/**关闭数据库链接*/
public void close ()
{
try
{
if (rs != null)
{
rs.close();
rs = null;
}
if (stmt != null)
{
stmt.close();
stmt = null;
}
if (conn != null)
{
conn.close();
conn = null;
}
}catch(Exception ex)
{
rs=null;
stmt=null;
conn=null;
System.out.println("community:dba:close():关闭连接异常!");
}
finally
{
rs = null;
stmt = null;
conn = null;
}
}
==========================================
...全文
767 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
jason_gy 2004-05-08
  • 打赏
  • 举报
回复
我也遇到过同样的问题,以前是因为使用连接池没有及时关闭而导致连接占线,后来用了TOMCAT自己带的连接池就没有出现这样的问题了。
jk3278jk 2004-05-08
  • 打赏
  • 举报
回复
是tomcat没有关掉,但服务已经停止了,访问jsp或html都显示505错误。
wyy_9715072 2004-05-07
  • 打赏
  • 举报
回复
不启动,是什么意思
是说,tomcat自动关掉了,还是没有办法访问页面
如果不能访问页面,那么,提示是什么错误
不能访问jsp页面的时候,html的页面能不能访问到呢?
如果html能够访问,那就能看到jsp的出错情报压
如果html也不能访问到,你看一下,在http://localhost/manager/html下面看看,session的个数是多少,你的session定义的失效时间是多少,如果是定义为永远不失效的话,那就给他一个失效时间,同时,系统允许的session个数加多一点
如果是tomcat自动关掉,嘻嘻,这个,就需要兄弟自己找了,各种原因就多了,呵呵
jk3278jk 2004-05-06
  • 打赏
  • 举报
回复
我的问题不是tomcat不启动。

是tomcat运行一段时间,一般是一个星期就不启动了。
顽皮小熊 2004-05-03
  • 打赏
  • 举报
回复
我想应该与你的连接数据库的代码无关,我遇到的这种情况多半是因为修改了一些系统配置的文件或者是属性,所以TOMCAT就不会启动。
jk3278jk 2004-05-02
  • 打赏
  • 举报
回复
????????????????
Shawn和月 2004-05-01
  • 打赏
  • 举报
回复
我的网站用的是 JDBC 的数据源,感觉挺好的,只要写了 cn.close(),还没出现过有关数据库的问题。
http://www.comicspot.net
Apache 2.0.49 + Tomcat 5.0.19
MySQL 4.0.18
J2SDK 1.4.02
jk3278jk 2004-05-01
  • 打赏
  • 举报
回复
不使用连接池吗? 那样速度会怎么样? 不用连接池,不敢想象啊。呵呵。
jk3278jk 2004-04-29
  • 打赏
  • 举报
回复
没人知道吗????
csdn叹!
jk3278jk 2004-04-28
  • 打赏
  • 举报
回复
好吗?
jk3278jk 2004-04-28
  • 打赏
  • 举报
回复
楼上教教我如何使用那个设置。 在哪设置?
谢谢了。

能告诉我吗?
YKwelldone 2004-04-28
  • 打赏
  • 举报
回复
什么自动的?

自动是什么意思?你是说把tomcat设置成系统服务吗?

如果设置成服务的话tomcat如果死掉的话,它会自动重启tomcat吗?
==〉在服务里面可以设置,如果服务失败可以选在重起

不过我认为这个是下下之策,你还是改进一下代码吧
jk3278jk 2004-04-28
  • 打赏
  • 举报
回复
现在使用什么版本? tomcat5好像不稳定吧!
jk3278jk 2004-04-28
  • 打赏
  • 举报
回复
什么自动的?

自动是什么意思?你是说把tomcat设置成系统服务吗?

如果设置成服务的话tomcat如果死掉的话,它会自动重启tomcat吗?
joy19 2004-04-28
  • 打赏
  • 举报
回复
我想你应该把tomcat在服务中给它设置成自动得,这样你就不能有上面得问题了!
spiritsl 2004-04-28
  • 打赏
  • 举报
回复
4.1.29好像不稳定
我现在在上面开发,还遇到过其他问题,
现在已经不使用这个版本了。
baijsp 2004-04-28
  • 打赏
  • 举报
回复
老兄!不能用Weblogic或WebSphere吗?
Tomcat有什么好呀!
if("便宜".equals("好货")){
System.out.println("那就用Tomcat吧!");
}else{
System.out.println("就用Weblogic或WebSphere吧!");
}
你选择那一个呀?
我给你提一个建议吧!重装Tomcat在进行如下操作:
Tomcat有些东西是无用并且影响你的程序运行,你把他都删除
Tomcat目录下webapps的目录下
balancer,jsp-examples,servlets-examples,webdav这四个都删除
Tomcat5\conf\Catalina\localhost\balancer.xml也删除
轻装上阵,最起码不会有Tomcat的垃圾信息和错误
yaray 2004-04-28
  • 打赏
  • 举报
回复
其实只要将open方法中的内容移至构造方法中就没有问题了.
yaray 2004-04-28
  • 打赏
  • 举报
回复
同意 wyy_9715072(小宇) 所说的

建议修改楼主的open() 方法,添加以下代码:

public void open() {

// 避免同一个dba实例的open方法的多次调用而造成数据库连接的丢失
if(conn!=null){ // <===新添加
return; // <===新添加
} // <===新添加

try {
//...


如上处理以后将不用synchronized关键字实现同步处理
gavintolee 2004-04-28
  • 打赏
  • 举报
回复
我用的是Tomcat5.0.19,连接数据库也是总出问题,有时候正常,执行数据库操作一切OK,但有时竟然报错,,,,JDBC SQL DRIVER。。。。。就是数据库驱动不对!
我看了下Tomcat-----有这样的提示严重错误:catalina..stop!!!
这是什么问题呀,我都装好几遍了。

真感觉这些东西没MS的IIS好用。
加载更多回复(8)

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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