Introduction
Este documento descreve como adicionar flags JVM (Java Virtual Machine) ao JAVA_OPTS no CloudCenter Manager (CCM).
Prerequisites
Requirements
A Cisco recomenda que você tenha conhecimento destes tópicos:
- Interface Linux
- Ambiente de Máquina Virtual
- componente CCM
Componentes Utilizados
As informações neste documento são baseadas nestas versões de software:
- CloudCenter versão 4.x
- aplicativo CCM
Informações de Apoio
Às vezes, o processo TOMCAT não responde e pára para funcionar corretamente, mas não há informações que indiquem o motivo pelo qual o TOMCAT não respondeu.
Problema
Os usuários não podem fazer login no CloudCenter e os usuários que estão conectados ao CloudCenter não podem ver a interface de usuário do CCM (UI) sem resposta. Esse problema pode ser acionado porque o serviço TOMCAT não é executado e parou para funcionar. Em seguida, os registros padrão do CCM não mostram nenhum detalhe ou o motivo pelo qual o serviço TOMCAT parou de funcionar.
Solução
Para coletar informações adicionais antes que o serviço TOMCAT pare de ser executado, os flags JVM precisam ser adicionados ao JAVA_OPTS, que está na pasta /usr/local/tomcat/bin/setenv.sh. Esse parâmetro ajuda a coletar o burro do processo JAVA e as estatísticas de coleta de lixo do processo JAVA. Em seguida, quando o processo TOMCAT torna-se inoperante, ele gera /usr/local/tomcat/logs/ccm.bin e /usr/local/tomcat/logs/ccm-gc.log.
Etapa 1. Adicione estes parâmetros no diretório /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
Etapa 2. Navegue até 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
Etapa 3. Reinicie o processo CCM TOMCAT.
/etc/init.d/tomcat restart
Etapa 4. Após o reinício, execute o comando ps -ef | grep tomcat para confirmar se o processo TOMCAT utiliza os novos parâmetros adicionados à /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
Esses novos parâmetros ajudam a criar arquivos adicionais que podem ser coletados quando o processo TOMCAT não responder novamente:
- Despejo de heap do processo JAVA - /usr/local/tomcat/logs/ccm.bin
- Estatísticas da coleta de lixo do processo JAVA - /usr/local/tomcat/logs/ccm-gc.log