新手请教:请问如何防止F5拼命刷新造成死机的问题?

05-03-22 rasclewen
我有个系统是jboss3.2.6 + ms sqlserver2000,采用了连接池连接数据库,可是在客户端按住F5刷新一会儿,jboss就死掉了,请问如何解决呀??

不好意思,我刚才做了个测试,打开http://www.jdon.com/jive/forum.jsp?forum=16&thRange=30, 然后按住F5刷新一会儿,可没有问题呀,可见是我的问题。

请问如何解决呀????
拜谢了。

rasclewen
2005-03-22 16:52
我的jboss opts 设为512M, 并且jboss的并发数设为20, 还是一样的问题。苦恼呀!!

SportsBaby1980
2005-03-22 20:27
应该不是服务器的问题

应该是你的程序的问题

dabb
2005-03-22 22:31
可能是你程序有“致命”问题,也有可能是你程序占用的资源比较多(io,thread,db connections等等),你设置的对应的各项参数偏小,承受不住压力。这要具体情况具体分析,不是问一个简单问题能解决的。可以利用一些profile工具,比如optimizeit,jprofile,再加上压力工具jmeter,loadrunner等,以及一些系统命令来监控系统的参数,来查看问题的原因。举个例子来说,上次我用loadrunner做测试的时候,发现系统运行一段时间就出现open too files错误,用ulimit -a查看自己设置的最大打开文件数已经挺高了。于是通过lsof|grep weblogic|wc -l查看自己的应用打开的文件数,发现已经打开了800多个,就停止了,开始抱错。就针对程序操作文件流的地方进行查看,结果发现在lucene 的IndexReader操作后,忘记关闭了,修改后,问题解决。当然这是一个简单的case,比较容易解决,权做参考

SportsBaby1980
2005-03-23 23:35
我的估计是你的程序某个地方和数据的交互太多或比较复杂,
导致无法在短时间内无法完成大量的请求。

建议:
采用loadrunner或其他测试工具
测试一下,找到响应的时间长的那个程序,然后优化

rasclewen
2005-03-24 09:17
经过反复的测试和思考,我现在也和楼上有个同感了。我的主页的程序是由模块化生成的,每个模块都是独立运行的,也就是说,页面有几个模块,就要和数据库连接几次。还有头和底部的图片连接都是从数据库中得到的,所以一个主页的程序大概就要有12次数据库的连接,天呀。

象这种由多个模块组成的页面数据库连接如何优化呢?

banq
2005-03-24 10:50
>种由多个模块组成的页面数据库连接如何优化呢
使用Cache,减少访问数据库负担。

SportsBaby1980
2005-03-24 21:29
装载一次主业就12次连接?
我晕

想办法把这个解决就行了

如果12次连结用F5刷死不了,那就怪了,
即使是连结池也会把连结用完的,
并且会导致连接池的连接用完,并在连结释放回到池前,
你的程序获得不到连结而出错-------不信可以监视你的服务器的log

我看是你的首页设计的问题,这个是严重的瓶颈
想办法解决吧

我觉得仅仅使用Cache也不一定能解决的。








SportsBaby1980
2005-03-24 21:35
还有头和底部的图片连接都是从数据库中得到的???????

这个什么意思?
不会是把图片存到数据库了吧?
存图片的路径就行了--------图片保存到硬盘上的特定目录
然后再拼接图片的路径就行了

至于其他的,我认为一个连接就行了
你不是include其他页面了吗?

其他页面里的内容不要直接去连结数据库
而是通过主(include其他页面的页面)页面和数据打交道
一次完成取数据,并采用一定的缓存机制,
其他页面从request里获得attribute就行了


---------实际情况我不清楚,上面仅仅是我的遐想

:)






rasclewen
2005-03-25 09:48
不好意思,可能说得不是很清楚吧。

也就是我的系统的主页都是由模块生成的。而这个模块是后台来生成的,每个模块独立对应不同的数据内容,也就是相当于一个摸板,相当于一个独立的页面,并且这个模块放到别的地方也是可以独立运行的。

我的主页就include 三大部分:head.jsp,main.jsp,foot.jsp
head.jsp/foot.jsp里面都有图片,但这个图片也是后台来上传的,前端只负责显示,那么这里就有了2个conn了。

然后客户要求主页要显示10个模块,这个10模块也是后台上传的摸板,main.jsp只是负责从数据库读出所有要包含的摸板的名称,但由于每个摸板模块都是相互独立的,所以每个都要连接数据库一次,这样就变成main.jsp共要有10个conn.

这样就一共有了12个连接了。

我是不是很蠢呀?????

gsy188
2005-03-30 09:50
能问问banq,jdon论坛的架构吗?主要是用什么硬件,应用服务器软件用的什么?用什么框架做的。谢谢。