Estou executando o Tomcat usando o pacote tomcat6 do Ubuntu 9.04, que cria um daemon fora do Tomcat usando jsvc. Gostaria de saber a maneira correta de definir opções de heap Java como -Xmx
para o Tomcat. Eu gostaria de colocar a configuração onde for estilisticamente correta e onde for menos provável que seja sobrescrita pelas atualizações de pacotes do Ubuntu.
As opções que vejo agora:
- Codifique-os em algum lugar
/etc/init.d/tomcat6
. - Codifique-os em algum lugar
/usr/share/tomcat6/bin/catalina.sh
. - Crie uma linha
/usr/share/tomcat6/bin/startup.sh
para definir CATALINA_OPTS para ter os sinalizadores desejados e exporte CATALINA_OPTS como uma variável de ambiente. (Parece que será captado porcatalina.sh
.)
A última opção soa como a melhor e é defendida (sem explicação do porquê) no aumento do heapspace do Java no script de inicialização do Tomcat . Mas eu queria uma segunda opinião. Alguém quer confirmar que não há uma maneira melhor?
/etc
se possível./etc/tomcat6/tomcat6.conf
é um arquivo grande e eu não queria colocar minhas personalizações pessoais, então criei$CATALINA_HOME/bin/setenv.sh
e criei/usr/sbin/tomcat6
. Espero que isso ajude os usuários do CentOS (sim, eu sei que a pergunta original era para o Ubuntu).Se você procurar no diretório bin da instalação, verá os scripts catalina.sh ou .bat. Se você olhar neles, verá que eles executam um script setenv.sh ou setenv.bat, respectivamente, se existir, para definir variáveis de ambiente. As variáveis de ambiente relevantes são descritas nos comentários na parte superior de catalina.sh/bat. Para usá-los, crie, por exemplo, um arquivo $ CATALINA_HOME / bin / setenv.sh com conteúdo
Para Windows, você precisará, em setenv.bat, de algo como
Isso é verdade do tomcat 5.5 a 7. Resposta original https://stackoverflow.com/questions/286007/how-to-tune-tomcat-5-5-jvm-memory-settings-without-using-the-configuration-progra
fonte
Procure o /etc/tomcat6/tomcat6.conf, que tem os gostos de JAVA_OPTS prontos e esperando que você descomente (mas somente se você tiver, use o Centos e não o Ubuntu).
fonte
A maneira mais elegante que encontrei até agora é editar o /etc/init.d/tomcat6 e adicioná-lo na parte superior do arquivo:
As outras opções descritas na minha pergunta não parecem funcionar. Depois de estudar o script e experimentar um pouco mais, agora duvido que /usr/share/tomcat6/bin/catalina.sh e /usr/share/tomcat6/bin/startup.sh desempenhem algum papel na inicialização do tomcat com o pacote Ubuntu do tomcat6. Em vez de; o /etc/init.d/tomcat6 substitui completamente qualquer trabalho que normalmente possa ser feito por catalina.sh/startup.sh.
Ainda estou um pouco preocupado com a perda dessas opções de configuração em alguma atualização futura de pacotes, mas acho que se isso acontecer seria muito fácil restaurá-las.
fonte