1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

sincronizando as threads do tomcat

Olá a todos.

Tenho uma aplicação web que utiliza o tomcat como container e eu preciso evitar que usuários diferentes executem juntos um determinado método.

Sei que trabalhando com thread em poderia criar um método sincronizado ou um bloco e tudo estaria resolvido, porém essa mesma tática não funcionar para as threads do tomcat e esse método acaba sendo executado.

Por acaso tem como forçar uma sincronização das threads do tomcat?

abaixo o código que estou tentando sincronizar.

 public  String gerarCoBarras() throws Exception {
        synchronized(this) {
            int i =0;
        Integer intMaiorCoBarra = cocobaDao.pegarUltimoCodigoBarra() + 1;
        cocobaForm.setSqCodigoBarras(intMaiorCoBarra.toString());

        // teste para verificar se o synchronized está funcionando
        while (i < 999999) {
            System.out.println("oi, eu sou thread " + Thread.currentThread().getName() + " e estou listando o numero " + i);
            i++;
        }

        if(!intMaiorCoBarra.toString().equals("999999999")) {
            cocobaForm.setCoBarras(calcularDigitoVerificador(intMaiorCoBarra.toString()).toString());

        } else {
            cocobaForm.setCoBarras("900000000" + calcularDigitoVerificador(intMaiorCoBarra.toString()).toString());
        }
        cocobaForm.setCoBarras(cocobaForm.getSqCodigoBarras().concat(cocobaForm.getCoBarras()));
        cocobaDao.incluir(cocobaForm);
         }
       return cocobaForm.getCoBarras() ;
    }

Obrigado.

  • Esse método está em um Servlet?

    Guilherme Brügger   11 de fev de 2014
  • Não, esta dentro de uma classe comum. To trabalhando com JSF e primefaces.

    ari_cesar   11 de fev de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java threads tomcat ou faça a sua própria pergunta.