Olá,
estamos desenvolvendo uma aplicação de grande porte (é a primeira vez que fazemos algo deste tamanho) em Java com interface web usando JSF.
Nossa aplicação é composta por alguns módulos, que são codificados de maneira independente, de tal maneira que, no final das contas, temos umas 5 ou 6 aplicações web em execução em nosso servidor (no caso, estamos usando apenas o Tomcat 5.5).
E é aí que entram minhas dúvidas:
-
Como toda aplicação, de tempos em tempos temos de atualizá-las. E sempre há usuários logados no sistema. Como devemos proceder? Há como fazer uma atualização da aplicação de tal modo que não quebre as sessões dos usuários? Se for possível fazer isto, como devemos proceder?
-
É muito comum ao atualizar um módulo (seguindo a sequência Parar aplicação, fazer o “undeploy” e carregar a nova versão do WAR), jogarmos a memória do servidor Tomcat no chão, paralizando assim todas as demais aplicações. Há como evitar estes transtornos? Como proceder neste caso? Há como nos livrarmos das horríveis mensagens OutofMemoryError?
-
Já configurei o servidor para utilizar no máximo 512 Mb de memória, no entanto, ao ver o status do servidor pelo Tomcat Manager, observo algo como o seguinte: “Free memory: 2.83 MB Total memory: 43.16 MB Max memory: 508.06 MB”. Há algo de errado?
-
A melhor solução seria usar algum servidor JEE padrão mesmo, como o JBoss devido ao recurso de hot deploy? E com relação ao hot deploy, ele me fornece os recursos que necessitamos e que listei acima? Não estamos usando EJBs. Mesmo assim a mudança para o JBoss por exemplo traria alguma vantagem REAL?
Resumindo: como vocês costumam lidar com estes problemas? Existe algum bom livro, website ou artigo listando as melhors práticas a serem aplicadas na manutenção destes servidores?