Esse "travamento" é devido ao limite de instancias de servlet no seu Servlet
Server
Como o seu servlet é SingleThreadModel, o seu Server criará uma instancia
dele para cada requisição simultânea.
Esse limite de instancias, normalmente, pode ser configurado no seu Servlet
Server.
Porém, o ideal seria você tornar o seu Servlet MultiThread.
Porque você implementa a interface SingleThreadModel? Uma das vantagens do
Servlet é justamente você poder ter apenas uma instancia e várias threads
para cada request.

Alex Felipelli

----- Original Message -----
From: "Carlos Campos" <[EMAIL PROTECTED]>
To: "'Lista SouJava'" <[EMAIL PROTECTED]>; "'Handerson Gomes - Java'"
<[EMAIL PROTECTED]>; "'Lista Webmasters'" <[EMAIL PROTECTED]>
Sent: Friday, March 30, 2001 9:29 AM
Subject: [java-list] Trocando dados entre Applets e Bancos de Dados


Prezados Javaneses,

Há alguns anos estabeleci um modelo de desenvolvimento de sistemas
orientados à WEB que se baseava nos seguintes princípios:

1.) Interface com o usuário utilizando formulários HTML com validação em
JavaScript;
2.) Se necessário, um pequeno Applet de apoio, utilizando LiveConnect (class
JSObject) que integra o JavaScript com Servlets via Applets;
3.) Servlets utilizando ODBC-JDBC através do free software VqServer;

Naquela época eu evitei de programar a interface puramente em Applet Java
por problemas de performance e por não encontrar uma ferramenta de
desenvolvimento adequada (IDE). Todas eram muito pesadas (Jbuilder 1 e 3,
NetBeans, Forte, VisualAge etc...) e geravam applets muito pesados, além de
serem inviáveis para se trabalhar no ambiente Windows. O pessoal da Fauna
Informática fez até um comentário que não era bom misturar muitas
tecnologias mas, pelas razões descritas acima, evitei de programar puramente
em Java, no lado cliente.

Há algumas semanas baixei o Jbuilder 4 Foundation e, ao contrário do Forte
da SUN que gera um código limpo e bonito mas que ainda é muito pesado para
operar, encontrei um produto bastante amadurecido, com uma performance no
ambiente Windows bastante suportável e me animei de desenvolver todas as
minhas interfaces com "Applets Pure Java". Apenas como referência, utilizo
um K6 II 350 com 96 MB para desenvolvimento de sistemas sob Windows 98.

O motivo da minha intervenção na Lista é que já utilizo, mesmo com a
interface HTML com LiveConnect, uma técnica de Stream onde o usuário clica
numa Caixa de Seleção, por exemplo, e uma chave é enviada do JavaScript para
o Applet Java via LiveConnect e este Applet se comunica com um Servlet no
servidor através da técnica ObjectOutputStream, conforme abaixo:

  // Retorna Objetos do Tipo String
  protected void retString(HttpServletResponse hsrsp, String resultado) {

    ObjectOutputStream outputToApplet;

    try {
      outputToApplet = new ObjectOutputStream(hsrsp.getOutputStream());
      outputToApplet.writeObject(resultado);
      outputToApplet.flush();
      outputToApplet.close();
      }
    catch(IOException e) {
      System.out.println(e.toString());
      }
  }

O problema é que eu tenho implementado um servlet do modelo Single Thread,
conforme abaixo, e é estabelecido um fluxo contínuo entre o meu Applet e o
Servlet, que consulta ou atualiza o Banco de Dados, retornando um flag de
gravação bem sucedida, ou mesmo os dados do registro, no caso de consulta ou
leitura do Bd.

public class Jb001 extends HttpServlet implements SingleThreadModel


Embora este modelo funcione bem, algumas vezes ocorre um travamento no
Applet se muitos usuários acessarem ao mesmo tempo este recurso. Então vai o
meu pedido de orientação:

1.) Utilizo um foco de desenvolvimento orientado para o Browser e sei que é
possível criar aplicações no Servidor que trabalhem via Sockets ou RMI se
comunicando com o meu Applet, mas creio que isto implicaria em inicializar
todas estas aplicações Java no Servidor NT e gerenciar a sua execução certo
???

2.) Para evitar isto me concentrei em utilizar um Servlet Server, de modo
que todo o meu desenvolvimento Server e contato com as bases de dados ocorra
via Servlet. É possível implementar uma outra forma de programação, via
Servlet, que não utilize o "SingleThreadModel" e que me garanta uma
comunicação MULTITHREAD entre os meus Applets e os Servlets, ou serei
obrigado a inicializar e gerenciar Aplicações Java rodando no servidor e
trabalhando com Sockets ou RMI ???

Agradeço pelos comentários e sugestões,

[]'s

Carlos Campos
Analista de Sistemas / Bolsista PCI
[EMAIL PROTECTED]
MCT / CETEM - Centro de Tecnologia Mineral
Fone: 0xx21 3865-7358
Fax :  0xx21 290-9196


------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------



------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a