myeclipse在过时的环境下部署项目出现的问题

开发环境

操作系统:xp sp3 2002 (ps:客户公司环境只有这个老古董)

开发工具:myeclipse2014  32位

jdk: 1.7_49    32位

DB:DB2  9.1  32位

tomcat:1.7    32位

背景

由于环境比较老古董,需要跑比较大的项目,服务器启动就需要六七分钟...,不仅如此,过程还出现很多问题,今儿就把问题分享出来,

方便自己日后或者有哪位同志遇到也可以参考下

案例

问题1:Unable to process Jar entry [COM/ibm/db2os390/sqlj/custom/DB2SQLJCustomizer.class] from Jar ...

分析:意思是tomcat在启动时找不到db2所需的jar包,也许我的tomcat没有添加,所以就查看了%TOMCAT_HOME%confcatalina.properties文件,

   定位到tomcat.util.scan.DefaultJarScanner.jarsToSkip...,按照原有的样式,添加一个db2jcc.jar就可以了,如下图

问题2:java.lang.OutOfMemoryError Java heap space的错误

分析:这个问题可能就比较普遍,网上也有很大文章解释这个的,我就不做详细解释了,大概就是这样的:

   在JVM中如果98%的时间是用于GC且可用的 Heap size(堆内存) 不足2%的时候将抛出此异常信息。

   JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.

   JVM在启动的时候会自动设置Heap size(堆内存)的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。

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

   例如:java -jar -Xmn16m -Xms64m -Xmx128m MyApp.jar

   如果Heap Size设置偏小,除了这些异常信息外,还会发现程序的响应速度变慢了。GC占用了更多的时间,而应用分配到的执行时间较少。

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

   Heap size的 -Xms -Xmn 设置不要超出物理内存的大小。否则会提示“Error occurred during initialization of VM Could not reserve enough space for object heap”。

 :JVM参数详解

 -Xms  初始堆大小。如:-Xms256m
 -Xmx  最大堆大小。如:-Xmx512m
 -Xmn  新生代大小。通常为 Xmx 的 1/3 或 1/4。新生代 = Eden + 2 个 Survivor 空间。实际可用空间为 =  Eden + 1 个 Survivor,即 90%
 -Xss  JDK1.5+ 每个线程堆栈大小为 1M,一般来说如果栈不是很深的话, 1M 是绝对够用了的。
 -XX:NewRatio  新生代与老年代的比例,如 –XX:NewRatio=2,则新生代占整个堆空间的1/3,老年代占2/3
 -XX:SurvivorRatio  新生代中 Eden 与 Survivor 的比值。默认值为 8。即 Eden 占新生代空间的 8/10,另外两个 Survivor 各  占 1/10
 -XX:PermSize  永久代(方法区)的初始大小
  -XX:MaxPermSize  永久代(方法区)的最大值
 -XX:+PrintGCDetails  打印 GC 信息
 XX:+HeapDumpOnOutOfMemoryError  让虚拟机在发生内存溢出时 Dump 出当前的内存堆转储快照,以便分析用

我的系统内存是2G的,在MyEclipse中,一次打开windows --> preferences --> MyEclipse --> Servers --> tomcat --> tomcat 7.0 --> jdk

填入参数即可:

-Xms500m
-Xmx1024m
-XX:PermSize=64M
-XX:MaxPermSize=256m
-XX:ReservedCodeCacheSize=48m
-Duser.timezone=GMT+08

供参考,如图

原文地址:https://www.cnblogs.com/maixiaodou/p/6421907.html