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?
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+
M
moreira07PJ
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.