TECNOLOGIA - WebServices - O que é um Timeout/Timed Out no processo de integração via WebService
Dúvida
O que é um Timeout/Timed Out no processo de integração via WebService?
Solução
Timeout (ou Timed Out) indica basicamente o término do tempo de espera definido para execução de algum processo.
Esse conceito é importante no processo de integração via WebServices, pois o sistema integrado que efetuou a chamada do WebService não pode ficar esperando eternamente por uma resposta da chamada do WebService. Portanto, o sistema que efetuou a chamada do WebService, ao realizar esta chamada, determina internamente o tempo que ele ficará esperando a resposta para essa chamada. Esse tempo especificado é o o tempo de timeout.
Para exemplificação prática deste conceito, verifique o cenário abaixo:
1. Você possui um sistema que faz a chamada de um WebService do sistema Gestão Empresarial | ERP;
2. No seu sistema, você define o tempo de timeout para esse processo de 60 segundos;
3. O seu sistema faz o acionamento do WebService do Gestão Empresarial | ERP solicitando a exportação de 1.000 cadastros de fornecedores;
4. O processamento da requisição deste WebService ocorre conforme descrito no artigo TECNOLOGIA - WebServices - Como funciona o processamento de um WebService pelos sistemas de Tecnologia G5/G6;
5. Pela quantidade de registros que o seu sistema solicitou, o Gestão Empresarial | ERP demora 80 segundos para efetuar o processamento (tempo que pode ser verificado fazendo a Consulta da Requisição, conforme descrito o artigo ERP - WebServices - Como efetuar a Consulta de Requisições de WebServices);
6. No entanto, quando o seu sistema tiver esperado 60 segundos para o processamento e não tiver recebido o retorno do processamento do WebService, o seu sistema encerrará a conexão, gerando uma timeout na conexão;
7. O Gestão Empresarial | ERP continuará efetuando o processamento da requisição mesmo após os 60 segundos se passarem, porém, o retorno enviado pelo Gestão Empresarial | ERP para o Servidor Web (para posteriormente ser retornado ao seu sistema) não terá serventia, pois o seu sistema já quebrou a comunicação e não está mais aguardando um retorno.
Tendo em vista a explicação do cenário reportado acima, você pode verificar a importância da configuração adequada entre o tempo de timeout que o sistema utilizará para cada chamada dos WebServices e a quantidade de registros que será processada em cada chamada (quanto maior a quantidade de registros, maior o tempo de timeout). No entanto, é importante também validar a quebra da quantidade de registros trafegados a cada chamada do WebService, evitando assim que alguma oscilação na comunicação entre os sistema (exemplo: queda na internet) impeça o término do processamento da requisição com sucesso.
Importante
Apesar do principal determinante do tempo de timeout ser o sistema integrado que efetua a chamada do WebService ao sistema da Senior, os sistemas da Senior possuem um parâmetro no SeniorConfigCenter onde é possível definir um tempo de timeout do processamento de qualquer WebService. Este parâmetro é o 'Tempo máximo de espera por resposta ao consumir um web service' que está disponível na tela Middleware / Web services do SeniorConfigCenter.
Esse tempo é respeitado pelas instâncias que fazem processamentos de WebServices e, caso uma instância esteja executando uma requisição a mais tempo que o tempo determinado neste parâmetro, o processamento será interrompido (isso serve para garantir que uma instância não fique processamento uma requisição eternamente, podendo causar um travamento geral do Middleware Senior). Clique aqui para acessar a documentação deste parâmetro.
Para mais informações sobre os WebServices do Gestão Empresarial | ERP, consulte o artigo ERP - WebServices - Onde é possível encontrar informações diversas sobre processo de integração via WebServices (índice).