Histórico da Página
01. DADOS GERAIS
Produto: |
| ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Linha de Produto: |
| ||||||||||||||||
Segmento: |
| ||||||||||||||||
Módulo: | SIGAPCP | ||||||||||||||||
Função: | WSPCP | ||||||||||||||||
País: | Brasil | ||||||||||||||||
Ticket: | 13083089 | ||||||||||||||||
Requisito/Story/Issue (informe o requisito relacionado) : | DMANSMARTSQUAD1-23062 |
02. SITUAÇÃO/REQUISITO
Ao processar requisições do WSPCP - Web Service, ocorre a abertura de múltiplas threads simultaneamente. O processamento das threads é realizado pela função ManualJob, que é executada a partir do WSPCP. Alguns parâmetros que definem 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, 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:
Tipo | Descrição | Default |
---|---|---|
Número | Tempo (em segundos) de inatividade das threads do Job | 10 |
Número | Número máximo de threads do Job | 10 |
Número | Número mínimo de threads livres do Job | 10 |
Número | Número de threads incrementadas/acrescidas no Job quando o minimo livre |
for atingido | 1 |
Exemplos corretos de preenchimento do parâmetro:
...
Caso seja preenchida uma das informações do parâmetro, as quatro informações devem ser preenchidas, na ordem indicada.
04. DEMAIS INFORMAÇÕES
Exemplo de funcionamento
Ao preencher o parâmetro MV_TWSPCP com 20,10,2,3, o processamento terá o seguinte comportamento:
Descrição do parâmetro | Conteúdo | Comportamento do Job |
---|---|---|
Tempo (em segundos) de inatividade das threads | 20 | Todas as threads abertas por envio de requisições permanecerão abertas por 20 segundos inativos. Após processar uma requisição, a thread voltará para a situação livre e poderá ser reutilizada. Caso não ocorra acionamento de uma thread aberta por 20 segundos, esta será fechada. |
Número máximo de threads abertas simultaneamente | 10 | Serão abertas no máximo 10 threads simultaneamente. |
Número mínimo de threads livres (sem uso) | 2 | Serão abertas 2 threads para permanecerem livres. |
Número de threads acrescidas quando a quantidade livre for atingida | 3 | Para cada requisição, deverão estar abertas 3 threads. |
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 a quantidade será novamente 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 da 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 e devem haver pelo menos duas threads livres, as threads 205 e 320 não serão utilizadas para atender uma das delas será utililizada para atender a requisição 03, então permanecerão livres.Para atender a requisição 03, será aberta uma thread (ID 400). Serão abertas outras threads para atender a quantidade mínima de threads livres.
05. ASSUNTOS RELACIONADOS
- Não se aplica.
Templatedocumentos |
---|
...