Ir para o conteúdo
Joniit

Web Service WSDL (multi threads)

Mensagens Recomendadas

Joniit

Bom dia pessoal,

Eu tenho um WebService (WSDL) que recebe vários pedidos de uma fonte externa num curto espaço de tempo (milésimos de segundo).

Esse mesmo WebService posteriormente para cada pedido cria uma thread e processa.

Se eu manualmente correr esses pedidos o processos correm de forma correta e sem problemas, mas quando vem de forma "automática" da fonte externa alguns pedidos não são processados.

É possível que possa haver conflitos de threads ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Joniit

É. :)

Como a melhor maneira de resolver esses conflitos?

Synchronized do java nas regiões criticas ?

A minha ideia era nessa região critica entrar apenas uma thread de cada vez e depois sim poderem executar livremente e paralelamente.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tiago.f

Não vendo o código não posso ser específico. Há muitas maneira de "resolver" este tipo de problemas.

Procurando "java thread conflict" no google, obtemos resultados interessantes.

Deixo 2 hipóteses (podes pesquisar por mais):

- usar o bloco synchronized - a desvantagem é que perdes os benefícios de executar este código em paralelo. Se usares, não abuses (mínimo código dentro do bloco) :)

- reestruturar o programa de modo a que o código executado por cada thread não dependa de nenhum recurso global (variáveis, ficheiros, etc). Assim cada thread corre no seu "mundo" e, julgo eu, não terás conflitos. (Neste cenário, se estiveres a aceder a uma BD, aproveita obviamente o conceito de transacção e bloqueio de tabelas)

Espero que pelo menos te ajude a encontrar o caminho certo.

Editado por tiago.f

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.