Entendendo como funcionam os serviços
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