日期:2014-05-18  浏览次数:20708 次

【100分,十万火急】究竟是java的内存大小问题,还是tomcat里面设置的jvm问题啊
问题描述:
1,生成报表,数据量比较大,按月生成都没有问题
2,按照1到8个月的汇总生成汇总表数据量就更大了
3,在本机器执行多少个月都没有问题
4,拿到服务器上执行就不好使,用struts做的,主要的问题就是
前面的业务都执行完毕了(因为用了sys控制台跟踪),但是到最后跳转的语句
return mapping.findForward("success");确不执行,就是无法从这个页面跳转到想跳转的页。
5,怀疑是内存的问题,但是服务器的内存是4G,自己机器上的内存是1g,可用自己的机器都好使,但是用服务器确为什么不好使
6,查看了一下网络,怀疑是java内存或者tomcat中间件内存有问题,但是不知道如何解决,应该设置什么,
所以求教高手,另外设置java的内存和tomcat的jvm内存有什么区别吗

------解决方案--------------------
换台机器看看吧,上面的回答真恶心,全市baidu搜出来的
------解决方案--------------------
如果没有抛出异常,远程调试一下。
------解决方案--------------------
服务器上没跳转,那报表生成了吗?如果报表还没生成,或者数据不对,那是不是这个进程还没有执行结束?
如果生成好了,你的程序是不是多线程运行,有些线程没有唤醒?

TOMCAT 的内存大小是在启动里设置的,参数还是比较多,可以google一下,你服务器4G的内存,一般用不了,JVM也就能申请2G的内存。

有条件可以通过一些工具来测试一下运行时刻应用程序占用机器的性能状况,比如Jprofile。
------解决方案--------------------
tomcat日志看看有没有记录,应该要抛错记录的,应该和报表没有多大的关系,不过报表设计不合理的话,也有可能会崩掉的,你还是着手解决内存的问题,设置内存是不能根本解决问题的。