SingleThreadModel no Tomcat  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
moreira07PJ
Thread.start()
[Avatar]

Membro desde: 11/03/2005 00:00:00
Mensagens: 28
Offline

Bom dia,

Tenho uma funcionalidade na minha aplicação que tem um tempo de processamento bastante demorado.

Se estiver sendo executado, e um outro usuário executar ao mesmo tempo gera duplicidade da base de dados.

Resolvi implementar a interface SingleThreadModel no meu servlet, mas não funcionou.

O artigo do GUJ "Thread Safety com Servlets", diz que essa implementação funciona de maneira diferente de servidor para servidor.

Estou usando o tomcat 5.5.9, alguem sabe como funciona nessa versão do tomcat, ou se existe alguma outra forma de fazer com que esse servlet não permita execuções concorrêntes?

Grato,

Rodrigo.
[WWW] [ICQ]
iktuzPJ
Virtual Machine Man
[Avatar]

Membro desde: 18/01/2005 00:00:00
Mensagens: 530
Offline

Não sei responder a tua pergunta. De qualquer forma porque não implementas um esquema de semáforo? Estais sincronizando a parte que é crítica e deixando os demais processos em espera?



Na verdade no Java5 foi acrescentado a API para tarefas concorrentes,
java.util.concurrent.*

T+
[WWW] aim icon [ICQ]
moreira07PJ
Thread.start()
[Avatar]

Membro desde: 11/03/2005 00:00:00
Mensagens: 28
Offline

Olá iktuz,

O que eu quero fazer é esse esquema de semáforo que você disse.
Mas não intendi esse código que você colocou.

Mais um detalhe, estou utilizando struts, dessa forma não posso herdar a classe Thread, uma vez que minha classe tem que herdar a classe DispatchAction.

Obrigado
[WWW] [ICQ]
Guilherme MelloPJ
JWizard
[Avatar]

Membro desde: 25/04/2004 00:00:00
Mensagens: 2994
Offline

Caso não conheça muito bem a programação concorrente em Java, dê uma lida: http://java.sun.com/docs/books/tutorial/essential/concurrency/

http://blog.guilhermemello.com
[WWW] aim icon [ICQ]
moreira07PJ
Thread.start()
[Avatar]

Membro desde: 11/03/2005 00:00:00
Mensagens: 28
Offline

Consegui resolver meu problema.
Na verdade viz algo mais simple que não tinha pensado antes.

Utilizei uma variável estática para controlar se o método esta sendo executado, caso esteja em execução sai do método sem fazer nada.



Obrigado a todos :grin:
[WWW] [ICQ]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team