System.Exit em uma Servlet

5 respostas
Jaba

Galera, essa foi uma questao que eu encontrei em um Mock da OCWCD:

O que realmente acontece quando eu dou um System.Exit em uma servlet?
Eu estou saindo apenas da Servlet ou derrubando toda a aplicacao em que a Servlet esta gerenciando as requisicoes?

Uma duvida tambem, no caso eu nem sei se a mesma se aplica a certificacao, mas no caso, nos temos uma JVM por container, ou uma JVM por maquina?

Valew!

5 Respostas

sethbra

Opa Jaba,
O System.exit detona a tua aplicação. É como se você pedisse para encerrar a máquina virtual (como você pode ver diretamente no javadocs - Terminates the currently running Java Virtual Machine ). Tinha feito uma gambiarra um dia desses dai para verificar isto e derrubou mesmo :smiley:

Jaba

Entao, esse metodo e muito mais perigoso do que parece, se eu possuir 3 webapps no meu container e uma chamar o System.Exit, as 3 caem, correto?

Alexandre_Saudate

Exatamente. Já respondendo sua outra questão, temos uma JVM por container. Ou seja, o ideal é ter um container por aplicação.

[]´s

Jaba

Para ter um container por aplicacao, a gente vai ter entao que possuir uma maquina por container? Ou e possivel subir mais do que uma instancia do TomCat por maquina? E agora me surgiu uma duvida: se temos uma JVM por container e nao por maquina, o Tomcat roda em cima de qual JVM, ja que o Tomcat e feito em Java?

E

Você pode rodar várias instâncias do Tomcat em uma mesma máquina, desde que as portas e IPs não batam.
Se, no entanto, for necessário usar um mesmo IP e porta para todos os Tomcats, você precisa pôr um Apache HTTP Server na frente, até para otimizar a utilização da máquina no caso de servir arquivos estáticos (como imagens, applets ou páginas HTML ou CSS puras).

Criado 15 de dezembro de 2010
Ultima resposta 15 de dez. de 2010
Respostas 5
Participantes 4