Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


01. DADOS GERAIS

Produto:

Solucoes_totvs
Solucao TOTVS Manufatura

Solucoes_totvs_cross
SolucaoCross

Solucoes_totvs_parceiros
SolucaoParceiros

Solucoes_totvs_parceirosexptotvs
SolucaoParcsExpsTOTVS

Linha de Produto:

Linhas_totvs
LinhaLinha Protheus

Segmento:

Segmentos_totvs
SegmentoManufatura

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:

TipoDescriçãoDefault
NúmeroTempo (em segundos) de inatividade das threads do Job10
NúmeroNúmero máximo de threads do Job10
NúmeroNúmero mínimo de threads livres do Job10
NúmeroNúmero de threads incrementadas/acrescidas no Job quando o minimo livre
(nMinFree)
for atingido1


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âmetroConteúdoComportamento do Job
Tempo (em segundos) de inatividade das threads20

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 simultaneamente10

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 atingida3

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

...