目錄

簡介

必要條件

需求

採用元件

背景資訊

問題

解決方案

簡介

本文檔介紹如何將Java虛擬機器(JVM)標誌新增到CloudCenter Manager(CCM)中的JAVA_OPTS。

必要條件

需求

思科建議您瞭解以下主題：

- Linux介面

- 虛擬機器環境

- CCM元件

採用元件

本檔案中的資訊是根據以下軟體版本：

- CloudCenter 4.x版

- CCM裝置

背景資訊

有時，TOMCAT進程停止響應並停止正常工作，但沒有資訊說明TOMCAT停止響應的原因。

問題

使用者無法登入到CloudCenter，而登入到CloudCenter的使用者會看到CCM使用者介面(UI)無響應。此問題可能會觸發，因為TOMCAT服務未運行且已停止工作。然後，CCM預設日誌不會顯示有關TOMCAT服務停止工作原因的任何詳細資訊或原因。

解決方案

為了在TOMCAT服務停止運行之前收集其他資訊，需要將JVM標誌新增到/usr/local/tomcat/bin/setenv.sh中的JAVA_OPTS。這些引數可幫助您收集JAVA進程的堆啞資料和JAVA進程的垃圾回收統計資訊。然後，當TOMCAT進程變得無響應時，它會生成/usr/local/tomcat/logs/ccm.bin和/usr/local/tomcat/logs/ccm-gc.log。

步驟1.在/usr/local/tomcat/bin/setenv.sh上新增這些引數。

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/tomcat/logs/ccm.bin -verbose:gc -XX:+PrintGCDetails

-XX:+PrintGCDateStamps -Xloggc:/usr/local/tomcat/logs/ccm-gc.log

步驟2.導覽至CCM > /usr/local/tomcat/bin/setenv.sh

[root@ccm bin]# cat /usr/local/tomcat/bin/setenv.sh

export LD_LIBRARY_PATH=/usr/local/apr/lib

export CATALINA_PID=$CATALINA_HOME/catalina.pid

export JPDA_ADDRESS=8000

export JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx2048m -XX:NewSize=512m

-XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath=/usr/local/tomcat/logs/ccm.bin -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps

-Xloggc:/usr/local/tomcat/logs/ccm-gc.log -Dhttp.proxyHost=rcdn-calo-proxy.cisco.com -Dhttp.proxyPort=3128

-Dhttp.nonProxyHosts=10.201.210.1"

export CLASSPATH=/usr/local/osmosix/etc

export CATALINA_OUT=/dev/null

步驟3.重新啟動CCM TOMCAT進程。

/etc/init.d/tomcat restart

步驟4.重新啟動後，執行命令ps -ef | grep tomcat，以確認TOMCAT進程使用新增到/usr/local/tomcat/bin/setenv.sh的新參數。

[root@ ccm ~]# ps -ef | grep tomcat

cliqrus+ 18683     1 99 16:46 ?        00:00:27 /usr/lib/jvm/java-8-sun/bin/java

-Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties

-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Dfile.encoding=UTF-8

-server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/tomcat/logs/ccm.bin -verbose:gc -XX:+PrintGCDetails

-XX:+PrintGCDateStamps -Xloggc:/usr/local/tomcat/logs/ccm-gc.log -Dhttp.proxyHost=rcdn-calo-proxy.cisco.com

-Dhttp.proxyPort=3128 -Dhttp.nonProxyHosts=10.201.210.1 -Djava.endorsed.dirs=/usr/local/tomcat/endorsed

-classpath /usr/local/osmosix/etc:/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

-Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp

org.apache.catalina.startup.Bootstrap start

root     18765 17947  0 16:47 pts/1    00:00:00 grep --color=auto tomcat

這些新引數可幫助您建立在TOMCAT進程再次無響應時可以收集的其他檔案：

- JAVA進程的堆轉儲 — /usr/local/tomcat/logs/ccm.bin

- JAVA進程的垃圾收集統計資訊 — /usr/local/tomcat/logs/ccm-gc.log