Thread

2 respostas
A

Bom dia pessoal,

seguinte estou com um problema durante a execução de uma thread. Procurei aqui no fórum mas não encontrei uma solução para meu problema.
O código abaixo é o método run() da minha classe ThreadEnvio.

public void run() {
        Comunicacao comunicacao = new Comunicacao("consultarEnvio");
        ResultSet rs = null;
        String chaveNFe = null;
        String xmlRecibo = null;
        while (1 > 0) {
            try {
                rs = monitoraDAO.getNotasConsultar();
                if (rs.getRow() > 0) {
                    do {
                        try{
                            chaveNFe = rs.getString("NFeMA_Chave");
                            xmlRecibo = consEnvioDAO.getXMLConsulta(chaveNFe);
                            comunicacao.consultarEnvio(chaveNFe, xmlRecibo, rs.getInt("NFeMA_Estado"));
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    } while (rs.next());
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

O que está ocorrendo é que na linha 14 - comunicacao.consultarEnvio(chaveNFe, xmlRecibo, rs.getInt(“NFeMA_Estado”));
o método consultarEnvio da classe comunicacao, faz uma chamada ao web service da receita.
E algumas vezes esta ficando parada a execução da thread nessa linha.
O que eu preciso é forçar novamente o inicio da execução dessa thread.

Como posso fazer isso ?

2 Respostas

J

se ela não responder é porque o servidor está ocupado. Então você precisa implementar um recurso de timeout. Se ela não responder em tempo determinado, dispara uma mensagem para tentar novamente em alguns minutos. (E claro, a operação deve ser cancelada).

A

julio,

Vc poderia me explicar melhor como fazer isso ? estou meio perdido ainda.

Criado 22 de julho de 2010
Ultima resposta 22 de jul. de 2010
Respostas 2
Participantes 2