为什么tomcat跑我的JSP网页时间长了会速度很慢很慢,直到停止? tomcat3.3.1与Appache结合最多只能提高静态页面对于动态方面的东东apache是无能为力的!还是从自身找原因:1,首先升级你的tomcat版本2,释放资源(关闭连接,记录集等)3,优化代码(sql语句等)4,提高系统配置 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 现在的tomcat已经有4.1版本了,你的连接池中在结束后释放连接了没有,还有就是jsp页面时间30分钟左右你不用的话就会断开,不过你可以在配置文件中设置更长一些。 系统设计的时候就应该考虑到这方面的原因释放资源(关闭连接,记录集等)只是写CODE的基本风格和素质要求而已。设计系统的时候如果考虑减轻程序员的代码量那性能就折扣了。考虑性能的话,程序员的代码量就增加了。让我考虑,第一位的是系统的架构以及可扩展性。第二位才是性能,第三位是程序员。从结构上来讲,应该尽量使用存储过程,而不是让程序员来构造sql。为什么呢?因为,让程序员构造sql,就成了一种紧耦合的情况,不便于以后的修改。如果设计成中间件,那就让程序员一个数据库操作都不做,全部调用你的接口来完成数据库操作。如果是普通的结队编程,那就做成存储过程,固定in和output,程序员只调用你的存储过程就ok了,便于以后扩展和维护。这样做其实是可以提高性能的,能交给数据库去做的事情就让数据库自己去做,如果你在程序程序里反复连接打开取记录集即使你关闭了资源也会造成浪费。设计系统的时候特别是做B/S系统的时候我们应该从一开始就考虑到是否会在大流量负载的情况下使用,在大流量下如果我们的系统能做成纯静态或者有必要做到纯静态的必要,如果能的话那就做成那样,(例如新闻系统等)这样复杂的工作就在后台里完成,负载都压给了WEBSERVER。这样会减少数据库的负载,同时提高WEB的负载,因为几乎不需要大量解释脚本或者CGI等。 Kandy(济沧海):你说"从结构上来讲,应该尽量使用存储过程,而不是让程序员来构造sql。"是指所有的sql语句还是整个系统中的关键sql语句?如果是所有的sql语句都有一个人统一写成sp,是不是太多了?而且怎么执行呢?项目开始的时候不可能知道所有的sql语句,在开发过程中,其他的组员在写程序的时候,需要一个访问数据库的操作,再找你先写一个sp么?请教! 建议使用weblogic,它在这方面提供很强大很完善的功能!!! 项目开始的时候不知道SQL语句有多少?我仅知道规范的开发操作变量一开始有多少个都很清楚了。我不知道你有没有UML的概念。我也非常懒得动不动拿这个东西出来说,仿佛是很说大话的样子。可能现在国内很少的软件企业用,但是软件既然想作为产业,想作为工程,……我要出去了,给你说个通俗的道理:就象盖楼一样,刚开始的设计图纸是应该有的…… Kandy(济沧海):谢谢,你所说的“从结构上来讲,应该尽量使用存储过程,而不是让程序员来构造sql”我也觉得很有道理,这对系统进行扩展与优化是很有好处的,另外在商业逻辑与数据表现分离的今天,这一点也是很好的。 weblogic是好,但对于一些对于一些比较小的应用,但访问量又较大的,经费又比较少的时候,有没有一个好的解决方案。 weblogic是好,但对于一些对于一些比较小的应用,但访问量又较大的,经费又比较少的时候,有没有一个好的解决方案。 对!任何问题在大流量情况下都需要单独来考虑,呵呵,这个就需要在设计系统的时候就考虑到此点,就象计数器,很简单吧,可是如果让你写一个放在SOHU的首页的计数器……我相信很多高手也都是不敢随便伸手写来的。 可能用tomcAT与Appache结合会解决这个问题吧,毕竟TOMCAT不是单纯作为WEBSERVER来用的,可能它的某些地方的对大容量多线程等的设计处理的不是很好,推荐正式服务用tomcat+appache 开发的调试的时候只用tomcat 在tomcat下写的JAVA程序应该是100%的可以完全跨平台移植。 兄弟们 问个事 怎样在程序中调用 开机时候那个bios的声音啊 tomcat iis整合发布asp与jsp网站 购物车修改数量问题 麻烦各位进来看一下 框架问题 proxool 联接池出错! 谁能帮我看一下,为何我取不到SESSION的值呀 jsp的指令问题 有没有高手写过在Jtree的节点上添加一个弹出式菜单 javamail作为一个客户端工具,能否在收信后把服务器上的邮件删除? 急求linux 下Apa+tomcat+jdk的配置安装文件 jsp中页面如何提交给自己! 关于ResultSet 的异常问题
还有就是jsp页面时间30分钟左右你不用的话就会断开,不过你可以在配置文
件中设置更长一些。
从结构上来讲,应该尽量使用存储过程,而不是让程序员来构造sql。为什么呢?因为,让程序员构造sql,就成了一种紧耦合的情况,不便于以后的修改。如果设计成中间件,那就让程序员一个数据库操作都不做,全部调用你的接口来完成数据库操作。如果是普通的结队编程,那就做成存储过程,固定in和output,程序员只调用你的存储过程就ok了,便于以后扩展和维护。这样做其实是可以提高性能的,能交给数据库去做的事情就让数据库自己去做,如果你在程序程序里反复连接打开取记录集即使你关闭了资源也会造成浪费。设计系统的时候特别是做B/S系统的时候我们应该从一开始就考虑到是否会在大流量负载的情况下使用,在大流量下如果我们的系统能做成纯静态或者有必要做到纯静态的必要,如果能的话那就做成那样,(例如新闻系统等)这样复杂的工作就在后台里完成,负载都压给了WEBSERVER。这样会减少数据库的负载,同时提高WEB的负载,因为几乎不需要大量解释脚本或者CGI等。
你说"从结构上来讲,应该尽量使用存储过程,而不是让程序员来构造sql。"是指所有的sql语句还是整个系统中的关键sql语句?如果是所有的sql语句都有一个人统一写成sp,是不是太多了?而且怎么执行呢?项目开始的时候不可能知道所有的sql语句,在开发过程中,其他的组员在写程序的时候,需要一个访问数据库的操作,再找你先写一个sp么?
请教!
谢谢,你所说的“从结构上来讲,应该尽量使用存储过程,而不是让程序员来构造sql”我也觉得很有道理,这对系统进行扩展与优化是很有好处的,另外在商业逻辑与数据表现分离的今天,这一点也是很好的。
在tomcat下写的JAVA程序应该是100%的可以完全跨平台移植。