Answers
服务器无响应分为这样几种情况
1:服务器挂了。这个时候服务器是没法访问的。整个服务器已经挂掉了。检测方法最简单,直接
ping
一下即可
2:服务挂了。就是你提供响应的服务挂了,系统内部异常,这个服务可能是一个进程。检测也比较简单,访问一下其它的服务看是否可用。
3:网络异常,用第一步的检测方法即可
回到你的问题
为什么浏览器端频繁操作会导致服务器端无响应?
这个原因可能有1:该服务被逻辑过于复杂,处理时间过长。导致后面的请求都被阻塞挂起了。2:内部异常了,导致服务所在的进程挂了,因此后续的请求也无法得到响应。PS:你可以通过请求得到的返回状态码来判断一下可能出错的位置。
以上
6yecao
answered 9 years, 10 months ago
问题最终解决了,问题的原因是数据库访问没有加事务注解,导致数据库访问的连接没有被管理,导致连接池中连接数不断增加进而超出,然后服务器就无响应了。正常来说这应该会报错才对,我最开始选择的数据库连接池是org.apache.commons.dbcp.BasicDataSource,不知道为什么没有报错,让我对问题无法定位;然后通过tomcat日志中connection reset信息猜测和数据库连接数有关;然后我换了一个连接池org.logicalcobwebs.proxool.ProxoolDataSource,这回报错明显,当我数据库访问超过一定次数,直接报错告诉我连接数超出了;然后我就发现是连接数没有被释放,然后我就发现是代码里没有加事务的注解(加了之后应该就是由spring来负责数据库连接的管理,是吗?),一个注解,解决了我的问题。。。有所收获
a-kano
answered 9 years, 10 months ago