日期:2014-05-19  浏览次数:20693 次

为什么这个SSH项目经常死掉?
完整包:http://aoron.host21.datanj.cn/blog.rar


下面是问题~~用spring+struts+hibernate写的。。 

http://localhost:8080/user.do?action=memberlist 

这个是查询会员列表的。 

刷新多次后(按控制台显示hibernate的show_sql显示,查询8次后就再次刷新,那个页面就定定停在那里,IE的滚动条停在20%左右,前进不了···)。 

其他需要查询数据库的页面也访问不了,写入也不行。。。  

但是在tomcat的manager页面reload该项目后,又可以访问了。但在一个页面不停的刷新8次后,有出现同样的情况,请问这是怎么回事啊? 

这个现象只在tomcat里出现。。
使用php查询数据库却没有问题!!!phpmyadmin vbb论坛 这些程序可以照常使用。
使用cmd 查询 SELECT * from user;
也可以查询出数据,就在项目里访问有关查询页面都会定定停在那里,IE的滚动条停在20%左右,前进不了。。

tomcat 5.5  
数据库是 mysql 5.0

Spring的数据库配置段。。 

<bean id="dataSource" 
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
<property name="driverClassName" 
value="org.gjt.mm.mysql.Driver"> 
</property> 
<property name="url" 
value="jdbc:mysql://localhost:3306/blog?characterEncoding=utf-8"> 
</property> 
<property name="username" value="root"> </property> 
<property name="password" value="mysqladmin"> </property> 
</bean> 

我以为是连接次数过多又没关闭数据库连接照成的。。 
可是我在spring的datasource中已经设置 destroy-method="close" 

我以为这个不起作用,又在查询完后关闭session!!! 
为什么还是这样啊??? 
在tomcat的后台中显示,sessions只有2个。。。。

------解决方案--------------------
可是我在spring的datasource中已经设置 destroy-method="close" 

这个是指在dataSourcec被销毁时,自动关闭。
和你的数据库查询的Connection 的 close 没有任何关系。

你必须使用后,明确的关闭数据库连接和Statement资源。