Páginas filhas
  • Contingência de Processos

Versões comparadas

Chave

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

...

Como descrito no Processamento por demanda, o processamento dos documentos é realizado através de um Pool de Threads onde os dados para processamento são obtidos em memória apos após o recebimento do processo pela camada de WS, ou seja, ao invés de buscar registros na base de dados, as rotinas de processamento recebem os dados através de parâmetros, enviados pelas  rotinas de recepção dos documentos. Essa característica exige a criação uma contingência para em casos de indisponibilidade de Threads ou em casos de falhas durante o processamento, pois todo o processo está sendo realizado com dados em memoria da aplicação.        

A indisponibilidade de Threads para processamento pode ocorrer em casos de alta demanda de Processamento de requisições , já as falhas de processamento podem ser provocadas ou devido à  fatores que falhas possam provocar a interrupção do processamento . Seja por como falha de acesso a serviços externos de integração com a aplicação(como a indisponibilidade dos serviços do Fisco de documentos: Sefaz, Prefeituras etc...  ) ou até mesmo pela queda(desligamento) do servidor da aplicação. 

Para que haja a contingência do processamento, os Processos são persistidos na base de dados para que o Job de Contingência possa acessar e inicar iniciar ou prosseguir com o processamento. O fato dos Processos serem sempre gravados na tabela de processos antes de iniciar o processamento por Demanda , faz com que o JOB filtre apenas os registros que não estejam em processamento. O filtro é realizado através do Status do processo.

Caso o pool de Threds esteja com Threads possua Threads disponíveis para processamento, os processos são gravados com "Status = 2: ( Em processamento )", caso contrário será registrado serão registrados com STATUS=1(Aguardando processamento). A cada tentativa de processamento,  o Processo é encerrado e o Status passa para "Status= 1(Aguardando Processamento)" para que o JOB possa dar continuidade no processamento.

...