Histórico da Página
...
Ao processar requisições do WSPCP- Web Service, ocorre a abertura de múltiplas threads simultaneamente. Algumas informações que orientam O processamento das threads é realizado pela função ManualJob, que é executada a partir do WSPCP. Alguns parâmetros que definem quantidade de podendo resultar o consumo total, impedindo o acesso aos programas do SIGAPCPdefinem o comportamento das threads estão sendo sugeridos pelo sistema, sem a opção de modificação do conteúdo, para melhor atender a realidade de cada cenário.
03. SOLUÇÃO
Foi adicionado o parâmetro MV_TWSPCP para armazenar quatro informações que serão utilizadas no momento do processamento do WSPCP. Estas informações são utilizadas dentro da função ManualJob, que é executada a partir do WSPCP, permitindo desta forma a parametrização do comportamento das threads de acordo com cada cenário.
As quatro informações que compõe o parâmetro são:
...
Caso o parâmetro não exista ou não esteja informado, o processamento será efetuado com as informações default de acordo com o WSPCP (não será utilizado o default do ManualJob).
Caso seja preenchida uma das informações do parâmetro, as quatro informações devem ser preenchidas, na ordem indicada.
...
- Exemplo de funcionamento
- Ao preencher o parâmetro MV_TWSPCP com 20,10,2,3 e executar o envio de três requisições, o processamento , o processamento terá o seguinte comportamento:
- Todas as threads abertas por acionamento das envio de requisições , permanecerão abertas por 20 segundos inativos. Após processar uma requisição, a threads thread voltará para a situação livre e poderá ser reutilizada. Caso não ocorra acionamento de um uma thread aberta e inativa por 20 segundos, esta será fechada.
- Serão abertas no máximo 10 threads simultaneamente.
- Serão abertas 2 threads para permanecerem livres.
- Para cada requisição, deverão estar abertas 3 threads.
- Ou seja, ao enviar 3 requisições:
- Ao enviar a requisição 01, serão abertas 3 threads (IDs 200, 205, 320). Como apenas a thread 200 será utilizada para atender a requisição 01, as threads 205 e 320 ficarão livres e atenderão a necessidade de manter no mínimo duas threads livres.
- Ao concluir o atendimento da requisição 01, em 5 segundos, a thread 200 ficará livre e novamente haverão 3 threads livres.
- Ao enviar a requisição 02, como já existem 3 threads abertas e livres, não será necessário abrir novas threads, sendo novamente utilizada apenas a thread 200 para atender. A escolha do servidor sobre a thread para ser utilizada não será necessariamente em ordem numérica, será aleatória.
- Antes de concluir o atendimento da requisição 02, é enviada a requisição 03. Como a thread 200 está sendo utilizada para atender a requisição 02 e devem haver pelo menos duas threads livres, as threads 205 e 320 não serão utilizadas para atender a requisição 03, então permanecerão livres.
- Para atender a requisição 03, será aberta uma thread (ID 400).
05. ASSUNTOS RELACIONADOS
...