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 Pool de Threads onde os dados para processamento são obtidos da em memória do appserver do TSSapos 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 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.        

...

Para que haja a contingência do processamento, os dados para processamento são Processos são persistidos na base de dados. Todas requisições referente a processamento de documentos geram Processos dentro do TSS. E é através desses Processos dados para que o Job de Contingência garantirá  possa acessar e inicar ou prosseguir com o processamento. O fato de todos os 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 para que não estejam em processamento. O filtro é realizado através do Status de processamento do documentoprocesso.

Os Caso o pool de Threds esteja com Threads disponíveis para processamento, os processos são gravados com "Status = 2: ( Em processamento )" . Em caso de falha,  a execução atual do Processo é encerrada caso contrário será registrado 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.

Porém as situações em que Em casos onde a interrupção do processamento  ocorra de forma involuntária, impossibilita impossibilitando a atualização do STATUS , exigindo que  o JOB utiliza outros critérios para o Filtro dos registros. Neste caso além do STATUS, o JOB compara a do processo, o critério para filtro dos registros e dado em comparação na data e horário atual com a data e horário do início do processamento e caso tenha ultrapassado processamento. Caso um processo esteja em processamento a mais de 5 minutos, o registro entrará no filtro e será reprocessado. 

 

No exemplo abaixo temos uma ilustração de um processo de Emissao de NFe. onde o Processamento por Demanda foi interrompido no Sub Processo de Consulta de retorno do processamento na Sefaz. Neste caso o JOB de Contingência garante o reprocessamento a partir do Sub Processo que apresentou a falha.

...

5 -  O processamento por Demanda é interrompido no Sub Processo de Consulta do documento

6 -  O registro do Processo é retornado na consulta realizada pelo JOB na tabela de Processos JOB realiza filtro dos registros pendentes de processamento.

7 - O JOB de Contingência reinicia o processamento a partir do Sub Processo que apresentou a falha.

...