Tanto na instalação de uma máquina ou de várias temos um local onde os serviços do PIS são executados. 


Temos dois serviços fundamentais: O Thread e o Schedule.


O Thread é o serviço que verifica se existem processos que estão numa fila para serem executados. O Schedule serve para agendar a execução de um processo.


Vamos entender melhor como eles funcionam.



Ref.00032



Um usuário acessa o PIS. 


Através do cliente ele faz a conexão. 


Claro que toda a conexão necessita consultar a área de propriedades para depois fazer o acesso ao banco de dados de Metadados.


Ref.00033



Porém, os dois serviços estão sendo executados em tempo integral no servidor. Estes serviços também consultaram a área de propriedades do PIS para saber a localização do banco de Metadados.


Ref.00034



Num determinado momento o usuário, pela interface cliente, pede para o PIS executar um processo de ETL ou Integração. 


Ref.00035



O PIS envia este processo para uma fila contida no banco de Metadados.


Ref.00036



Podemos ter diversos processos nesta fila.



Ref.00037



Quase que instantaneamente o PIS Service Thread fica checando se esta fila está cheia ou vazia.



Ref.00038



Se ela estiver cheia o serviço verifica quem está no topo da fila. Pega este processo e executa um módulo chamado PIS Server Command que o executa reservando no Hardware do servidor uma Thread para isso.


Ref.00039



Se houver mais processos na fila o Thread Service chama outra instância do Server Command e dispara a Thread para ser executada no Hardware independente se o processo inicial terminou ou não.


Como vimos na parte de licenças esta execução em paralelo e quantos podemos rodar ao mesmo tempo depende do tipo de licença comercial associada ao cliente.


Ref.00040



Agora se o cliente quer apenas agendar o processo para ser executado num determinado horário o processo, em vez de ir para a fila de processamento vai para a fila de agendamentos dentro do Metadados.


Ref. 00041



Podemos ter diversos processos agendados na fila de agendamentos.


Ref. 00042



O serviço de Schedule fica verificando a hora do computador. Quando uma determinada hora coincide com o horário do agendamento, o serviço do Schedule transfere o processo da fila de agendamento para a fila de execuções.


Ref. 00043


Ref. 00044


Ref.00045



Estando na fila de processamento o serviço Thread executa o processo através do Server Command.


Ref.00046



Durante o primeiro Login especificamos nas propriedades do servidor justamente a localização dos programas executados pelos serviços bem como a localização do programa Server Command, que é chamado pelo serviço de Thread.


Qualquer diretório especificado aqui de forma errada não fará com que o processo funcione corretamente.



Ref.00047