Prezados Carlos e Alex, apesar de estar caindo meio de
paraquedas e naum saber direito o problema, tente
implementar com RMI somente para fazer a leitura dos
dados e se vc for implementar mais alguma tarefa para
executar em paralelo, utilize threads
Correcao, se vc naum implementa SingleThreadModel, naum
é que vc tenha uma excecao, vc tem realmente é multiplas
instancias de um mesmo servlet ou ate applet e
standalone e abrindo comunicacao, vc fecha
automaticamente o que abriu!!!!!!
Abraços
Carlos Maurício
> Prezado Alex,
>
> Primeiramente gostaria de me desculpar pela afirmação
abaixo. Realmente não
> tem nada a ver o fato de usar "SingleThreadModel" com
o travamento do
> Applet. Respondi o texto abaixo porque recebi alguns
erros de exception no
> passado, quando não implementei este modelo e fixei a
idéia de que só
> conseguiria estabelecer o STREAM desta forma.
>
> Observando os exemplos do site http://www.servlets.com
existem 3 soluções:
> Via STREAM sem ser SingleThreadModel, via Sockets e
via RMI.
>
> Implementei a 1. opção e o Applet continuou travando
se eu modificar mais
> rapidamente a caixa de seleção. Aparentemente o Applet
não consegue
> administrar o fluxo de dados intenso entre o Input e o
Output do STREAM,
> causando o travamento.
>
> Mesmo simulando uma única conexão, se eu ficar
clicando na seta para baixo a
> fim de alterar a caixa de seleção mais rapidamente o
Applet trava, perdendo
> o controle sobre a operação de troca de dados com o
Servlet.
>
> Vou tentar implementar as outras alternativas e ver se
consigo um melhor
> resultado, ok?
>
> []'s
>
> Carlos Campos
>
>
>
> > ----- Mensagem original -----
> > De: Carlos Campos
> > Enviada em: Sexta-feira, 30 de Março de 2001 16:58
> > Para:       '[EMAIL PROTECTED]'
> > Assunto:    RES: [java-list] Trocando dados entre
Applets e Bancos de
> > Dados
> >
> > Oi Alex,
> >
> > Creio que vc realmente não entendeu o meu objetivo.
> >
> > O servlet precisa implementar o
modelo "SingleThread" para estabelecer uma
> > comunicação contínua e única via stream entre o
Applet e o Servidor. Se vc
> > ignorar o modelo "SingleThread" aparentemente não é
possível fechar um
> > canal de comunicação entre o seu Applet e o Servlet
comum, tendo em vista
> > que o servlet não saberia para qual applet enviar a
resposta, gerando uma
> > exception. Há menos que vc utilize o
redirecionamento padrão de páginas,
> > onde cada thread do servlet gera uma página de
retorno para cada
> > requisição.
> >
> > Neste caso específico eu não estou querendo gerar
páginas de retorno do
> > meu servlet. Estou querendo ficar na minha página
inicial, PARADINHO, com
> > o meu Applet conversando com um Servlet no servidor
que atenderá todas as
> > minhas requisições, entendeu ???
> >
> > Estou pesquisando, por indicação do Handerson Gomes,
o site
> > http://www.servlets.com onde existem alguns exemplos
deste tipo de
> > comunicação via SOCKETS e via RMI utilizando algumas
classes adaptadas.
> >
> > Vou tentar me virar sozinho, ok?
> >
> > Qualquer coisa eu grito!!!
> >
> > []'s
> >
> > Carlos Campos
> >
> > ----- Mensagem original -----
> > De:         Alex Dornelas Felipelli
[SMTP:[EMAIL PROTECTED]]
> > Enviada em:         Sexta-feira, 30 de Março de 2001
15:40
> > Para:               [EMAIL PROTECTED]
> > Assunto:            Re: [java-list] Trocando dados
entre Applets e
> > Bancos de Dados
> >
> > Eu ainda não entendi o porquê de o Servlet ser
SingleThread.
> > O que tem isso a ver com o "pula pula de páginas
HTML"? Você mudar de URL,
> > não tem nada a ver com a instancia da Servlet que
você está acessando.
> > Não sei se eu entendi direito o seu problema, mas eu
tenho impressão que
> > você poderia deixar de implementar o
SingleThreadModel. Porque você
> > colocou
> > isso inicialmente?
> >
> > Não entendo de RMI, mas deve haver uma maneira de
fazer o que você está
> > querendo mesmo, já que você terá um client (applet)
acessando remotamente
> > o
> > objeto no seu servidor.
> >
> > Alex
> >
> > ----- Original Message -----
> > From: "Carlos Campos" <[EMAIL PROTECTED]>
> > To: "'Lista SouJava'" <[EMAIL PROTECTED]>
> > Sent: Friday, March 30, 2001 2:05 PM
> > Subject: ENC: [java-list] Trocando dados entre
Applets e Bancos de Dados
> >
> >
> >
> >
> > > ----- Mensagem original -----
> > > De: Carlos Campos
> > > Enviada em: Sexta-feira, 30 de Março de 2001 14:02
> > > Para: '[EMAIL PROTECTED]'
> > > Assunto: RES: [java-list] Trocando dados entre
Applets e Bancos de
> > > Dados
> > >
> > > Oi Alex,
> > >
> > > Agradeço por vc ter repondido o meu e-mail.
> > >
> > > Eu não utilizo a interface "SingleThreadModel"
para todos os servlets,
> > mas
> > > apenas para este tipo de comunicação onde o Applet
fica recebendo e
> > > enviando os dados para o Servlet sem ocorrer o
redirecionamento de
> > página.
> > >
> > > Ou seja, me corrija se eu estiver errado, mas
quando se utiliza Servlets
> > > vc envia solicitações ou dados via GET ou POST e
executa um Servlet no
> > > servidor que processa a informação e te devolve
uma página HTML com os
> > > resultados, certo?
> > >
> > > Neste caso específico, estou evitando o "pula pula
de páginas HTML". O
> > > usuário carrega a Applet uma vez numa página HTML,
e acessa os dados no
> > > lado Servidor sem que seja necessário trocar de
página HTML, entendeu
> > ???
> > >
> > > Parece que existe uma possibilidade de implementar
os Servlets
> > > Multithreads via pacotes RMI, de modo a atender
especificamente esta
> > > necessidade, mas ainda estou a busca de um
exemplo, ok?
> > >
> > > Qualquer orientação me avise e muito obrigado
amigo.
> > >
> > > []'s
> > >
> > > Carlos Campos
> > >
> > > ----- Mensagem original -----
> > > De: Alex Dornelas Felipelli
[SMTP:[EMAIL PROTECTED]]
> > > Enviada em: Sexta-feira, 30 de Março de 2001 12:13
> > > Para: [EMAIL PROTECTED]; 'Handerson Gomes -
Java'; 'Lista
> > > Webmasters'
> > > Assunto: Re: [java-list] Trocando dados entre
Applets e
> > > Bancos de Dados
> > >
> > > 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'" <java-
[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]
> > >
> > -----------------------------------------------------
--------------------
> >
> > ------------------------------ 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 java-list-
[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 java-list-
[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 java-list-
[EMAIL PROTECTED]
> -------------------------------------------------------
------------------
>
>


__________________________________________________________________________
O BOL é Top3 no iBest! Vote já para torná-lo Top1!
http://www.bol.com.br/ibest.html



------------------------------ 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]
-------------------------------------------------------------------------

Reply via email to