Tomcat出现_PermGen_space解决方案

合集下载

tomcat常见的错误与解决方案小结

tomcat常见的错误与解决方案小结

tomcat常见的错误与解决⽅案⼩结⼀、tomcat启动时错误问题1:The JAVA_HOME environment variable is not defined This environment variable is needed to run this program;解决:没有在tomcat的配置⽂件.bash_profile中设置环境变量JAVA_HOME,具体设置⽅法为:加⼊如下⼏⾏:JAVA_HOME=/home/tomcat/j2sdk1.4.2_08(具体值要以实际的jdk安装路径为准)export JAVA_HOMECLASSPATH=/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/lib/dt.jarexport CLASSPATH问题2:Error occurred during initialization of VM Could not reserve enough space for object heap解决:在tomcat的bin⽬录下,catalina.sh⽂件的tomcat内存参数配置过⼤,超过机器可⽤内存总数造成,修改到适当的值即可,修改的参数为:JAVA_OPTS="-Xms50m -Xmx60m"问题3:tomcat启动时报某个⽬录没有权限,启动失败,或者不能执⾏某些jsp页解决:tomcat需要tomcat⽤户具有⼀些⽬录和⽂件的相应权限, 所有⽬录应该具有读写执⾏(浏览)的权限,jsp,class⽂件应该最少具有读权限, ⼀些⽂件需要写权限,下⾯是已知的需要读写权限⽂件的列表:$CATALINA_HOME/logs下所有⽂件$CATALINA_HOME/work下所有⽂件$CATALINA_HOME/publish/main/count.txt⽂件$CATALINA_HOME/publish/chatroom/resource下的所有.xml⽂件所有上传图⽚⽬录都需要写权限。

帆软认证报表工程师(FCRA)考试(试卷一)

帆软认证报表工程师(FCRA)考试(试卷一)

帆软认证报表工程师(FCRA)考试• 1.在表单设计时,参数栏默认就存在模板上方的,可以直接将控件放到上面。

正确错误• 2.在模板中添加的内置数据集可以使用sql()函数。

正确错误• 3.决策系统的颜色色调是可以自己设置的正确错误• 4.决策系统中默认登录后的首页是不能使用FR以外的网页地址正确错误• 5.决策系统中的左侧菜单是不可以修改的正确错误• 6.决策系统中的用户,一旦添加,不能删除,只能编辑正确错误•7.决策系统中可以查询系统日志情况正确错误•8.模板单元格的内容是可以设置左缩进的正确错误•9.FR的设计器中,有提供切换工作目录功能,达到远程进行报表制作的目的正确错误•10.FR10.0的表单具有自适应功能正确错误•11.FR填报的报表,不支持居中显示正确错误•12.图表交互属性中监控刷新,时间间隔最多能设置成999s正确错误•13.在设计报表时,重复标题行可以不连续()正确错误•14.参数界面组件只能添加在表单的顶部错误•15.求每个人的各科目得分小于80的总科目数,在G2单元格输入如图所示的公式,是否正确?正确错误•16.移动端支持所有的新特性图表正确错误•17.移动端支持悬浮图表正确错误•18.移动端在超级链接中,可以进行文件下载正确错误•19.V3版本以后的微信插件能实现报表平台与多个企业微信号做集成正确错误•20.tomcat出现OutOfMemoryError: PermGen space报错时,可以加大-XX:PermSize 和 -XX:MaxPermSize处理。

正确错误•21.映射就是把路由器的一个或几个端口直接指向内网正确错误•22.配置同步用户数据集以后,需要重新登录正确错误•23.报表中支持输入公式的地方均可以引用参数,参数引用直接使用 $para 即可将参数值传递过来。

正确错误•24.模板参数和全局参数都属于模板参数的范畴,全局参数的使用方法与模板参数一致,它们之间的区别只是使用范围不同。

tomcat常见错误与解决方法

tomcat常见错误与解决方法

上海纽斯达科技tomcat常见错误与解决方法上海纽斯达科技有限公司2014-10-25文档状态目的:在tomcat 服务器出现故障时,能快速定位并解决相关错误。

保密:本文档仅供内部使用,请勿外传概述:tomcat 常见错误与问题之解决方法技术指南。

安装环境:系统环境:redhat enterprise 6.5 64bit文件状态:【 】草稿【 】修改稿 【√】正式发布 文档编号 Nsdkj-779 保 密 等 级 限制 作 者 刘恒亮 最后完成日期 2014-12-25 审 核 人最后审核日期 2014-12-25 批 准 人最后批准日期 2014-12-25注释:Q代表问题,A代表错误解决办法Q:在以tomcat用户启动tomcat时提示:The JAVA_HOME environment variable is not defined This environment variable is needed to run this programA:没有在在tomcat的配置文件.bash_profile中设置环境变量JAVA_HOME,具体设置方法为:加入如下几行:JAVA_HOME=/home/tomcat/j2sdk1.4.2_08(具体值要以实际的jdk安装路径为准)export JAVA_HOMECLASSPATH=/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/li b/dt.jarexport CLASSPATHQ: 在以tomcat用户登录linux系统后,提示:-bash: /home/tomcat/j2sdk1.4.2_08: is a directory-bash:/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/lib/dt.ja r:没有那个文件或目录。

帆软认证报表工程师(FCRA)考试(试卷一)

帆软认证报表工程师(FCRA)考试(试卷一)

帆软认证报表工程师(FCRA)考试• 1.在表单设计时,参数栏默认就存在模板上方的,可以直接将控件放到上面。

正确错误• 2.在模板中添加的内置数据集可以使用sql()函数。

正确错误• 3.决策系统的颜色色调是可以自己设置的正确错误• 4.决策系统中默认登录后的首页是不能使用FR以外的网页地址正确错误• 5.决策系统中的左侧菜单是不可以修改的正确错误• 6.决策系统中的用户,一旦添加,不能删除,只能编辑正确错误•7.决策系统中可以查询系统日志情况错误•8.模板单元格的内容是可以设置左缩进的正确错误•9.FR的设计器中,有提供切换工作目录功能,达到远程进行报表制作的目的正确错误•10.FR10.0的表单具有自适应功能正确错误•11.FR填报的报表,不支持居中显示正确错误•12.图表交互属性中监控刷新,时间间隔最多能设置成999s正确错误•13.在设计报表时,重复标题行可以不连续()正确错误•14.参数界面组件只能添加在表单的顶部错误•15.求每个人的各科目得分小于80的总科目数,在G2单元格输入如图所示的公式,是否正确?正确错误•16.移动端支持所有的新特性图表正确错误•17.移动端支持悬浮图表正确错误•18.移动端在超级链接中,可以进行文件下载正确错误•19.V3版本以后的微信插件能实现报表平台与多个企业微信号做集成正确错误•20.tomcat出现OutOfMemoryError:PermGen space报错时,可以加大-XX:PermSize 和-XX:MaxPermSize处理。

错误•21.映射就是把路由器的一个或几个端口直接指向内网正确错误•22.配置同步用户数据集以后,需要重新登录正确错误•23.报表中支持输入公式的地方均可以引用参数,参数引用直接使用$para 即可将参数值传递过来。

正确错误•24.模板参数和全局参数都属于模板参数的范畴,全局参数的使用方法与模板参数一致,它们之间的区别只是使用范围不同。

OutOfMemoryError_8种典型案例分享

OutOfMemoryError_8种典型案例分享

然后在 SpringMVC的拦截器(Interceptor)实现类中, 在 preHandle 方法里, 将 request 对象保存到 ThreadLocal 中:
/** * 登录拦截器 */ public class LoginCheckInterceptor implements HandlerInterceptor { private List<String> excludeList = new ArrayList<String>(); public void setExcludeList(List<String> excludeList) { this.excludeList = excludeList; } private boolean validURI(HttpServletRequest request){ // 如果在排除列表中 String uri = request.getRequestURI(); Iterator<String> iterator = excludeList.iterator(); while (iterator.hasNext()) { String exURI = iterator.next(); if(null != exURI && uri.contains(exURI)){ return true; } } // 可以进行登录和权限之类的判断 LoginUser user = ControllerBase.getLoginUser(request); if(null != user){ return true; } // 未登录,不允许 return false; } private void initRequestThreadLocal(HttpServletRequest request){ ControllerBase.setRequest(request); request.setAttribute("basePath", ControllerBase.basePathLessSlash(request)); } private void removeRequestThreadLocal(){ ControllerBase.setRequest(null); } @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { initRequestThreadLocal(request); // 如果不允许操作,则返回false即可 if (false == validURI(request)) { // 此处抛出异常,允许进行异常统一处理 throw new NeedLoginException(); } return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { removeRequestThreadLocal();

完美解决PermGenspace异常的问题

完美解决PermGenspace异常的问题

完美解决PermGenspace异常的问题开发中遇到Eclipse报错:ng.OutOfMemoryError: PermGen space。

PermGen space百度翻译为:永久区域内存不⾜。

1. 先来⼀张jvm结构图:内存不⾜问题⼀般都是发⽣在'堆‘上,GC作⽤区域也是在'堆‘上。

2. 这个'堆‘⼜划分成了好⼏块区域,包括:新⽣代:包括伊甸园区和存活区。

⽼年代:永久带:jdk1.8后变成元空间,元空间不再占⽤堆中的空间,⽽永久带却是在堆中开辟空间。

可以发现,堆中就有个永久区。

永久区的内存溢出,其实就是堆的内存不够⽤。

只需要调⼤堆的内存⼤⼩就可以解决问题。

3. 调整堆⼤⼩的参数:-Xms256m -Xmx1024m-Xms:堆的初始化⼤⼩,这⾥设置成了256m.-Xmx:堆最⼤的⼤⼩,这个设置成了1024m.这⾥⾯就存在了⼀个可伸缩的空间,⽽这个空间的存在会损耗服务的性能。

因为扩容和释放空间都是有性能损耗的。

最好的办法就是:-Xms和-Xmx设置成同样的⼤⼩。

这样就不存在可伸缩的空间了。

4. jvm参数的配置位置。

a. 如果是使⽤tomcat服务:修改tomcat/bin⽬录下的catalina.bat。

(windows环境下修改⽂件catalina.bat, linux环境下修改⽂件catalina.sh)配置在⽂件的第⼀⾏: b.如果是eclipse修改eclipse的Run Configurations。

(如果是debug模式,修改Debug Configurations。

)写在此处,⽅便拷贝:-Xms256m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=512mc.如果已经被配置成了服务这种情况,就需要修改注册表了。

c1. regedit命令打开注册表。

c2. 找到配置的tomcat服务。

修改:JvmMs,JvmMx,Options⾥⾯的参数值。

tomcat报错:虚拟内存不足,启动失败;页面文件太小,无法完成操作

tomcat报错:虚拟内存不足,启动失败;页面文件太小,无法完成操作

tomcat报错:虚拟内存不足,启动失败;页面文件太小,无法
完成操作
服务器上安装了tomcat和jdk后,tomcat总是启动失败,错误日志显示:虚拟内存不足,启动失败,或者是:Error 0x800705af: 页面文件太小,无法完成操作。

后一种错误其实和前一种是一样的,只是不同的电脑系统可能显示不同。

解决办法:增大虚拟内存
步骤:
1、右键点【我的电脑】-【属性】-【高级】选项卡,
2、在【性能】栏内点【设置】-继续点【高级】选项卡,
3、在【虚拟内存】栏内点【更改】-弹出【虚拟内存】对话框,就可以设置了。

4、单选【自定义大小】,在【初始大小】里设置1024,在【最大值】里设置2048(不能超过32位操作系统的内存寻址范围——4GB)。

最后点一下【设置】可生效。

如有必要,可重启电脑。

建议将虚拟内存移动到除C盘之外的其它盘,例如D盘。

以减轻对系统盘的压力。

方法:仍在【虚拟内存】对话框,点击C盘卷标,单选【无分页大小】。

再选D盘卷标,单选【自定义大小】,设置【初始大小】和【最大值】即可。

虚拟内存最大值一般设置为物理内存的2倍。

linux下jira安装破解以及汉化

linux下jira安装破解以及汉化

Linux上Jira 5.0的安装、破解及汉化博客分类:java历程因为机子上要同时部署jira,confluence等多个平台,因此jira独立安装明显浪费资源,所以采用war包方式安装,共用一个tomcat。

准备工作:下载JIRA,下载地址:/software/jira/JIRADownloadCenter.jspa,目前为止,最新版本是5.0,选择JIRA 5.0 WAR的压缩包。

保证主机上的JDK,MySQL都已经安装完毕,Tomcat也已经部署完备。

同时检查环境变量中$JAVA_HOME等是否准确配置,检查/etc/profile文件是否准确。

这些基本步骤这里不再具体说明。

在mysql数据库中,建立jira所用的数据库,并给jira用户赋予权限。

Sql代码1.mysql> create database jiradb;2.mysql> grant all on jiradb.* to 'jira'@'localhost' identified by'jira';3.mysql> flush privileges;创建jira运行时所使用的工作目录,路径自己定:Java代码1.# mkdirusr/local/workhome/jira_home部署jira:将下载的atlassian-jira-5.0-war.tar.gz压缩包放到tomcat的webapps目录运行命令,将压缩包进行解压:Java代码1.# tar zxvf atlassian-jira-5.0-war.tar.gz进行解压后得到的目录:Java代码1.# cd atlassian-jira-5.0-war运行 build.sh 脚本,会自动进行构建,完成后,进行dist-generic目录,将里面的war包复制到tomcat的webapps目录下:Java代码1.# ./build.sh2.# cd dist-generic/3.# cp atlassian-jira-5.0.war /usr/local/tomcat/webapps/运行tomcat,tomcat会自动将atlassian-jira-5.0.war进行解压缩将解压缩后的目录atlassian-jira-5.0移动到一个单独的工作文件夹,方便管理,如:/usr/local/atlassian-jira-5.0这一步看个人喜好,如果是直接在webapps目录下运行,可省去。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Tomcat出现 PermGen space解决方案PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space 中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。

如果你的WEB APP 下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。

解决方法:1. 手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.bat(Linux下为catalina.sh),在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512mcatalina.sh下为:JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=512m"2. 将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。

如果遇到这个异常:ng.OutOfMemoryError: Java heap space 是什么原因呢?解释:Heap size 设置JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。

可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。

Heap size 的大小是Young Generation 和Tenured Generaion 之和。

提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。

提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。

解决方法:手动设置Heap size修改TOMCAT_HOME/bin/catalina.bat,在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize=256m或修改catalina.sh在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:JAVA_OPTS="$JAVA_OPTS -server -Xms800m -Xmx800m -XX:MaxNewSize=256m"另外看到了另外一个帖子,觉得挺好,摘抄如下:主题: 分析ng.OutOfMemoryError: PermGen spaceSUN JDK+Tomcat 5.5.20运行服务的时候遇到问题,服务器跑几天后就会挂掉,并报ng.OutOfMemoryError: PermGen space异常。

发现很多人把问题归因于: spring,hibernate,tomcat,因为他们动态产生类,导致JVM中的permanent heap溢出。

然后解决方法众说纷纭,有人说升级 tomcat版本到最新甚至干脆不用tomcat。

还有人怀疑spring的问题,在spring论坛上讨论很激烈,因为spring在AOP时使用CBLIB会动态产生很多类。

但问题是为什么这些王牌的开源会出现同一个问题呢,那么是不是更基础的原因呢?tomcat在Q&A很隐晦的回答了这一点,我们知道这个问题,但这个问题是由一个更基础的问题产生。

于是有人对更基础的JVM做了检查,发现了问题的关键。

原来SUN 的JVM把内存分了不同的区,其中一个就是permenter区用来存放用得非常多的类和类描述。

本来SUN设计的时候认为这个区域在JVM启动的时候就固定了,但他没有想到现在动态会用得这么广泛。

而且这个区域有特殊的垃圾收回机制,现在的问题是动态加载类到这个区域后,gc根本没办法回收!2003年的时候就有一个bug报告给sun,但是到现在,这个bug还没有close!有人在这个bug加了句评语:“A bug this critical is open since 2003? Absolutely shameful.”我觉得SUN在这个BUG上确实有些丢脸。

对这个bug最彻底的解决办法就是不要用SUN的JDK,而改用BEA的 JRokit.打不过,还逃不过吗?有众多的选择,这就是开源的好。

:)最后,给出几篇文章供大家学习参考:Java虚拟机的选项:/show/3/7/20061112220131.htmHot Spot JVM5中的GC调优:/show/3/7/20061112220201.htm1、PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。

说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。

这种错误常见在web服务器对JSP进行pre compile的时候。

改正方法:-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m2、在tomcat中redeploy时出现outofmemory的错误.可以有以下几个方面的原因:1,使用了proxool,因为proxool内部包含了一个老版本的cglib.2, log4j,最好不用,只用common-logging3, 老版本的cglib,快点更新到最新版。

4,更新到最新的hibernate3.23、这里以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理。

一、ng.OutOfMemoryError: PermGen spacePermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。

如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。

解决方法:手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。

二、ng.OutOfMemoryError: Java heap spaceHeap size 设置JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。

可以利用JVM 提供的-Xmn -Xms -Xmx等选项可进行设置。

Heap size 的大小是Young Generation 和Tenured Generaion 之和。

提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。

提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。

解决方法:手动设置Heap size修改TOMCAT_HOME/bin/catalina.sh在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"三、实例,以下给出1G内存环境下java jvm 的参数设置参考:JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "。

相关文档
最新文档