Fico contente que eu tenha ajudado.
Fico, tamb�m, um pouco espantado com o que aconteceu com o uso do Tomcat. Suportar apenas 3 usu�rios era uma coisa que n�o deveria acontecer. Tenho v�rios casos de desenvolvimento com o ambiente de produ��o baseado no Tomcat, onde um limite de usu�rios desta ordem de grandeza n�o acontece. Por�m, pode existir algo implementado nos componentes que for�a este limite. Acho mais prov�vel a limita��o estar na programa��o dos componentes JSP ou Servlets do que no 'Web Container'. A id�ia b�sica do Tomcat �, al�m de ser uma implmenta��o de refer�ncia das API's Servlets e JSP, prover uma implementa��o do conceito de 'Web Container'. Neste conceito uma das caracter�sticas fundamentais � permitir o acesso concorrente aos componentes que s�o executados dentro deste 'container'.
Contudo, a configura��o 'default' do Tomcat traz um componente de Web Server que muitos chamam de 'Lightweight Web Server'. Este componente representa uma implementa��o simples e 'light' de um servidor http, mais para o prop�sito de desenvolvimento do que para produ��o. Para o ambiente de produ��o, o projeto Jakarta [1] (um dos projetos do grupo Apache [2]) recomenda o uso de um 'Apache Web Server' (ou qualquer outro Web Server) no lugar da implementa��o 'lightweight'. Assim, o 'Apache Web Server', uma sugest�o �bvia do grupo Apache/Jakarta, se dedicaria em atender �s requisi��es HTTP e prover as p�ginas e arquivos est�ticos (que por sinal faz muito bem!), e quando estas requisi��es forem para componentes Web, este redirecionaria as requisi��es para o 'Web Container'. Da� o 'Web Container' deveria se dedicar em manter e executar os componentes Web (JSP/Servlets). Este mesmo cen�rio poderia prover o servi�o de 'Load Balancing' e 'Fail-Over', onde poderiamos ter v�rios 'Web Servers' (Apache Web Server) atendendo �s requisi��es HTTP e v�rios 'Web Containers' executando os componentes Web. Atrav�s deste cen�rio poder�amos obter performace melhores e da� atender cada vez mais usu�rios concorrentes.
Quanto �s diferen�as de acesso ao disco entre o Tomcat e o JBoss, suponho que a resposta esteja no fulano chamado 'Classloader' ([3] e [4]). Este indiv�duo sempre causa confus�o nas nossas cabe�as quando estamos desenvolvendo ou implantando uma aplica��o J2EE. As regras definidas nas especifica��es Servlet e J2EE para o 'Classloader' afeta deste uma simples aplica��o Web (JSP/Servlets) at� o escopo de acesso aos objetos nos componentes EJB [5]. At� empacotar as aplica��es em arquivos .jar, .war, .rar e .ear muda consideravelmente com o 'Classloader' e quando desejamos ter acesso � outros arquivos, classes ou recuros contidos nestas aplica��es e no servidor de aplica��es [6], tamb�m. Por isso, entender como funciona o 'Classloader' no JRE ([7], [8] e [9]) e na arquitetura J2EE � fundamental e nos ajudar� a evitar muita dor de cabe�a.
Mas, o que o 'Classloader' tem a ver com o acesso � uma arquivo no disco? Tudo! Numa aplica��o Web ou baseada em componentes EJB, que s�o executados num servidor de aplica��es e num ambiente distribu�do, recursos n�o 'serializ�veis' podem ser usados mas n�o s�o recomendados. D� trabalho ficar abrindo e fechando conex�es com arquivos. Neste caso, n�o dever�amos, por exemplo, buscar um arquivo atrav�s da API de I/O (java.oi ou java.nio). Para acessar qualquer recurso devemos usar o 'Classloader' que, al�m de poder carregar classes [10], � capaz de localizar e carregar qualquer recurso que esteja no 'file System', num arquivo .jar, na rede via http, soap ou outros protocolos ou elementos distribu�dos. As regras de 'Classloader' no 'EJB Container' se destacam mais e s�o mais r�gidas do que no 'Web Container'. Por isso, pode parecer diferente entre o Tomcat e o JBoss, entre o 'Web Container' e o 'EJB Container'. Mas, o procedimento deveria ser o mesmo, j� que a especifica��o J2EE � a mesma e � aplicada aos dois tipos de 'Containers' ([11] e [12]) .
Por�m, existe uma pequena diferen�a entre o esquema de 'Classloader' na especifica��o 'Servlet' e o esquema geral da especifica��o 'J2EE' ([10] e [12]). No esquema 'Servlet' a hierarquia de 'Classloaders' primeiro procura as classes/arquivos no pacote da aplica��o Web (WEB-INF/lib/**.jar e WEB-INF/classes) e depois delega a localiza��o do recurso desejado para o 'Classloader' pai na hierarquia. J� no esquema J2EE, este obedece fielmente a especifica��o da Virtual Machine [10]. Ou seja, um 'Classloader', na hierarquia de 'Classloaders' primeiro sempre delega a localiza��o para o seu 'Classloader' pai e somente quando este responde que n�o achou � que tenta-se localizar no pr�prio escopo. E se no escopo local n�o achar, o 'Classloader' responde para o seu 'Classloader' filho que n�o achou, se o escopo local n�o for o �ltimo da hierarquia. Portanto, no J2EE primeiro delega-se para o 'Classloader' pai, se este achar est� resolvido, se n�o tenta achar localmente. Parece confuso, mas � necess�rio entender o esquema de 'Classloader' do Java para saber como ter acesso aos recursos no disco e como empacotar devidamente as aplica��es Web ou EJB.
Segue no final deste e-mail uma lista de refer�ncias que pode ajud�-lo a esclarecer melhor toda esta confus�o que armei ... Vale a pena desenbara�ar ...
Enjoy ... []�s
Spock
---------------------------------------------------------------------
[1]. The Jakarta Apache Project
http://jakarta.apache.org/
[2]. The Apache Software Foundation
http://www.apache.org/
[3]. java.lang.ClassLoader
http://java.sun.com/j2se/1.3/docs/api/java/lang/ClassLoader.html
[4]. The Basic of Java Class Loaders
http://www.javaworld.com/javaworld/jw-10-1996/jw-10-indepth_p.html
[5]. Advanced Classloaging in J2EE
http://www2.theserverside.com/resources/articles/AdvancedClassLoading/article.html
[6]. EJB 2 and J2EE Packaging
Part 1: http://www.onjava.com/pub/a/onjava/2001/06/26/ejb.html
Part 2: http://www.oreillynet.com/pub/a/onjava/2001/07/25/ejb.html
[7]. The Java Extension Mechanism
http://java.sun.com/j2se/1.3/docs/guide/extensions/index.html
[8]. Extension Mechanism Architecture
http://java.sun.com/j2se/1.3/docs/guide/extensions/spec.html
[9]. The Extension Mechanism Tutorial
http://java.sun.com/docs/books/tutorial/ext/
[10]. The Java Virtual Machine Specification.
Topic 5.3 Creation and Loading.
http://java.sun.com/docs/books/vmspec/2nd-edition/html/ConstantPool.doc.html#72007
[11] Tomcat Class Loader How-To
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/class-loader-howto.html
[12]. JBoss 3.0 Administration and Development Documentation
http://www.jboss.org/docs/
---------------------------------------------------------------------
Glauco Cesar de Castro wrote:
>
Ola Spock.
Primeiramente, obrigado pelas dicas. Vou ver o que posso fazer.
Mas so respondendo a sua pergunta. Iniciamos o desenvolvimento com Tomcat. Isso a mais ou menos 3 anos. Ano
passado, quando colocamos o sistema em testes de performance, tivemos um
pequeno probleminha. Nao conseguiamos conectar mais que 3 usuarios
simultaneos (inclusive, na epoca, mandei alguns emails para a lista
pedindo socorro, o que resolveu algumas coisas). Achamos que poderia ser
o tomcat que nao estava dando conta do recado, pois havia lido que ele
nao e um servidor Web, e sim um "interpretador" JSP e que deveria
procurar um servidor Web (Apache por exemplo) e colocar o tomcat rodando
debaixo do mesmo. Como solucao, resolvemos utilizar o Jboss porque, alem
de parecer ser mais parrudo, iremos comecar a migrar o nosso sistema
para EJB.
Alem disso tudo, me corrija se estiver errado, existem algumas
peculiaridades quanto a programacao para o Jboss (JSP), principalmente
na parte de acesso a disco a partir do container Web. Entao, depois que
migramos para o Jboss, ficou complicado migrar de volta para o Tomcat.
Bom, em resumo e isso. Essa e a razao pela qual utilizamos o Jboss, e
nao apenas o tomcat, que sei resolveria meu problema.
Um abraco,
Glauco Cesar de Castro
-----Mensagem original-----
De: Dr. Spock [mailto:[EMAIL PROTECTED]] Enviada em: Monday, January 20, 2003 19:41
Para: [EMAIL PROTECTED]
Assunto: Re: [enterprise-list] Otimizacao do JBoss
Caro Glauco,
Se vc est� utilizado somente JSP e algumas classes java, pq n�o s� usar o Tomcat? Pq vc precisa do JBoss?
Se vc n�o estiver usando os recursos do JBoss e muito menos o 'EJB Container', acredito que vc n�o precise do JBoss. Basta uma distribui��o
simples do Tomcat que vc pode obter em:
http://jakarta.apache.org/site/binindex.cgi
Fique atento para o fato de que existe uma distribui��o do JBoss j� integrado com o Tomcat. � poss�vel que vc esteja usando essa distribui��o. Ent�o, se vc utiliza apenas o 'Web Container', n�o existe nenhum ganho significativo em usar o JBoss. Pq, no final das contas vc est� apenas usando o Tomcat, mesmo no JBoss. Exceto, se vc estiver usando algum servi�o especifico do JBoss que vc n�o encontraria somente no Tomcat. O mesmo acontece quando vc usa o JBoss integrado com o Jetty.
Ent�o, pq n�o usar somente o Tomcat? Rubustez? Como disse, se vc n�o estiver usado algo que vc s� encontra no JBoss, o JBoss, por s� s�, n�o est� agregando valor.
Mas, se realmente vc precisa do JBoss, vc poder� customiz�-lo alterando ou removendo os arquivos de configura��es dos servi�os (services). Estes arquivos normalmente encontram-se em:
$JBOSS_HOME/server/default/deploy/
Procure pelos arquivos '*-service.xml'. Estes arquivos s�o usados pelo 'hot deploy' do JBoss para iniciar os servi�os indicados nestes arquivos. Modificando-os ou removendo-os vc ir� alterar a configura��o dos servi�os ativados no JBoss. Portanto, se vc desativar os servi�os que s�o desnecess�rios no seu ambiente, vc poder� economizar mem�ria.
Outros arquivos de configura��es podem ser encontrados em:
$JBOSS_HOME/server/default/conf/
Cuidado para n�o desativar algum servi�o essencial do servidor de aplica��es.
Enjoy ... []�s
Spock
Glauco Cesar de Castro wrote:
Ola para todos.
Desenvolvi um sistema que, por enquanto, ainda nao esta usando EJB. Estou utilizando o Jboss (win2000 server) por ser free e por ser mais parrudo que o tomcat sozinho (que pro meu caso ja resolveria, pois estou utilizando JSP e classes JAVA). Bom, o problema eh que o servico
do Jboss esta consumindo 82 mega de memoria RAM no servidor. Minha pergunta �, como posso otimizar isso? Nao acho que seria necessario tudo isso de memoria apenas para interpretacao de paginas JSP e utilizacao de algumas classes JAVA.
Obrigado pela ajuda
Glauco Cesar de Castro
--------------------------------------------------------------------- Para cancelar a subscri��o, envie mensagem para: [EMAIL PROTECTED] Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]
