1. 程式人生 > >weblogic10啟動時的JVM問題

weblogic10啟動時的JVM問題

首先看看tomcat與weblogic關於JVM的段子:

(1)tomcat

Tomcat預設可以使用的記憶體為128MB,Windows下,在檔案{tomcat_home}/bin/catalina.bat,Unix下,在檔案{tomcat_home}/bin/catalina.sh的前面,增加如下設定:

JAVA_OPTS=’-Xms[初始化記憶體大小]-Xmx[可以使用的最大記憶體]’
引數描述-XmsJVM初始化堆的大小
-XmxJVM堆的最大值,一般說來,你應該使用實體記憶體的80%作為堆大小。
例如:JAVA_OPTS=”-Xms256-Xmx512″

(2)weblogic

a)編輯WeblogicServer啟動指令碼檔案;
BEA_HOME\user_projects\domains\domain-name\startWebLogic.cmd(startWebLogic.shonUnix)
BEA_HOME\user_projects\domains\domain-name\startManagedWebLogic.cmd(startManagedWebLogic.shonUnix)–這個是做叢集的時候用的
b)編輯setJAVA_OPTIONS命令,如:setJAVA_OPTIONS=-Xms256m–Xmx256m;
(在UNIX下把MEM_ARGS=”-Xms1024m-Xmx1024m-Xmn128m”加到上述兩個.sh檔案中即可)
c)儲存,重啟即可。
注:在WebLogic中,為了獲得更好的效能,BEA公司推薦最小Java堆等於最大Java堆。

其實,個人本次部署是顯示JVM報錯跟他們的設定方式不能解決問題,問題描述如下:

----------------------------START---------------------------------------------------------

Could not create the Java virtual machine.
Invalid maximum heap size: -Xmx4096m
The specified size exceeds the maximum representable size.

----------------------------END----------------------------------------------------------

普通的解決辦法是:

修改hive-0.6.0\bin\ext\util\execHiveCmd.sh檔案如下

  #HADOOP_HEAPSIZE=4096
  HADOOP_HEAPSIZE=128 

另外一種解決辦法:設定環境變數ulimit -n  4096即可解決。

結果,當我仔細檢視問題的時候,發現The specified size exceeds the maximum representable size.還有另外一種可能:如果是安裝的JDK版本為32位,4g超過了JDK所支援的最大記憶體,也同樣報該問題。

  通過 java -version 檢視JDK的版本,
顯示:當前工作目錄下安裝有一個32位的jdk(sun jdk),64位的jdk可以看到 64-bit的字串,但32位是沒有相關的資訊的,真是如此,問題得以解決。

vi 此檔案/etc/profile

echo $JAVA_HOME