Manutenção dos Jobs

Produto:

Framework

Versões:

11.xx, 12.xx

Ocorrência:

Procedimentos para manutenção dos Jobs

Ambiente:


Passo a passo:

Inicialmente, execute o acerta usuário de acordo com sua base de dados, disponibilizado junto com o instalador de banco de dados ou já extraído para a pasta C:\totvs\CorporeRM\BaseDados:

BD0016_SQL_Server_Acerta_Usuário 

Acesse o diretório “C:\totvs\CorporeRM\RM.Net”. Dentro da pasta informada você deverá encontrar os arquivos Alias.dat, _Broker.dat e Update.dat, e apaga-los. Em seguida execute o arquivo “RM.AliasManager.exe”. Preencha os campos conforme a conexão exige.

Confirme as permissões da conta para iniciar o serviço do host, exemplo:

Local Account, alterando para uma conta de administrador da rede:

 

Verifique se a data/hora/minuto das máquinas que estão envolvidas no processo está igual. Sendo as maquinas Servidor de Banco, Servidor de Terminal Service, Servidor de Processos e Estações clientes.

Confira todos os arquivos configs do seu sistema sendo.

Exemplo:

 Nova MDI: C:\totvs\CorporeRM\RM.Net\ RM.exe.config

  • Labore: C:\totvs\CorporeRM\RMLabore\ RMLabore.exe.config
  • Etc;

 Para ambos as tags deverão ser conferidas:

 <appSettings>

  <add key="JobServer3Camadas" value="false" />

  <add key="Host" value="BHD0005438" />

  • Tag Jobserver sempre com o valor false.
  • Tag Host: Nome da máquina

Acesse o menu Gerenciamento de JOB pela aba Ambiente, selecione todos os registros e delete-os. (Obs.: caso tenha JOB's agendados verifique no campo "Recorrência" estiver preenchidos são JOB's agendados):

Delete os arquivos temporários dos diretórios abaixo:

%temp%

C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp

C:\Windows\ServiceProfiles\LocalService\AppData\Local

Realize a limpeza de logs de Execução de processos, conforme link abaixo:

Limpar Log de Execução de Processos

Limpar Log de Execução de Processos

Acesse o diretório da máquina que está sendo utilizada como servidor de processos e vá ao diretório “C:\totvs\CorporeRM\RM.Net”. Dentro da pasta informada você deverá apagar os arquivos Alias.dat e _Broker.dat. Em seguida execute o arquivo “RM.AliasManager.exe”. Preencha os campos conforme a conexão exige.

Confirme as permissões da conta para iniciar o serviço do host, exemplo:

Local Account, alterando para uma conta de administrador da rede:

 

Verifique se a data/hora/minuto das máquinas que estão envolvidas no processo está igual. Sendo as maquinas Servidor de Banco, Servidor de Terminal Service, Servidor de Processos e Estações clientes.

Na aba “Serviços” deixe marcada a opção “Habilitar Processamento de Job”, atribua um valor para Execuções Simultâneas” e deixe desmarcada a opção “Executar apenas Job’s Locais” (Desmarque apenas se o ambiente for 3 ou N Camadas). Teste a conexão e caso tenha êxito salve as alterações.

Para um Servidor de Jobs Dedicado a configuração simultânea de Jobs (Execuções Simultâneas), deverá ficar com a nomenclatura de 3 processos de jobs para cada núcleo de CPU do Servidor, conforme imagem abaixo. São 4 processadores e teremos 3 jobs para cada núcleo, então serão 12 processos simultâneos:
OBS: Caso o valor 0 seja utilizado, o sistema identificará como 3, o numero de execuções simultâneas.

Via nova MDI (RM.EXE) acesse o menu dos SERVIÇOS GLOBAIS > AMBIENTE> COCKPIT.

Na tela clique no botão “Iniciar”. O ícone “Interromper Servidor” ficará habilitado. Em seguida tente executar o processo do sistema novamente. 

Confira todos os arquivos configs do seu sistema sendo.

A)     Máquina local:

Arquivos de configurações dos aplicativos:

Exemplo:

 Nova MDI: C:\totvs\CorporeRM\RM.Net\ RM.exe.config

  • Labore: C:\totvs\CorporeRM\RMLabore\ RMLabore.exe.config
  • Etc;

 Para ambos as tags deverão ser conferidas:

 <appSettings>

  <add key="JobServer3Camadas" value="true" />

  <add key="Host" value="BHD0005438" />

  • Tag Jobserver sempre com o valor true.
  • Tag Host: Nome da máquina

B)      Máquina Servidor / JOBSERVER

Conferir exclusivamente o arquivo config de host C:\totvs\CorporeRM\RM.Net\RM.Host.Service.exe.config

A tag Jobserver, também deverá conter o valor True.

Lembrando que a regra acima, será para todos os arquivos .confg do sistema.

Para maiores informações, acesse o tutorial de instalação para 3 camadas:

http://tdn.totvs.com/pages/releaseview.action?pageId=65209727

Realize a remoção de todas a máquinas no Cockpit:

Reinicie o serviço do RM.Host.Service para que o servidor seja apresentado no Cockpit.

Acesse o menu Gerenciamento de JOB pela aba Ambiente, selecione todos os registros e delete-os. (Obs.: caso tenha JOB's agendados verifique no campo "Recorrência" estiver preenchidos são JOB's agendados):

Delete os arquivos temporários dos diretórios abaixo:

%temp%

C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp

C:\Windows\ServiceProfiles\LocalService\AppData\Local

Realize a limpeza de logs de Execução de processos, conforme link abaixo:

Limpar Log de Execução de Processos

Limpar Log de Execução de Processos


Inicialmente, execute o acerta usuário de acordo com sua base de dados, disponibilizado junto com o instalador de banco de dados ou já extraído para a pasta C:\totvs\CorporeRM\BaseDados:

BD0015_Oracle_Acerta_Usuário

Sistema Operacional 64 bits: A recomendação da Totvs é que sejam instalados os Clients do Oracle 32 e 64 bits, em máquinas cujo sistema operacional seja 64 bits. Detalhes no link abaixo:

Instalação do client 32 e 64 bits do Oracle na mesma máquina:

http://tdn.totvs.com/pages/viewpage.action?pageId=274325400

Caso tenha apenas o client do Oracle 32 bits instalado, poderá executar o corflags, conforme orientações abaixo:

Antes de realizar os passos abaixo, favor fechar todas as aplicações Totvs e desinstalar o serviço de Host.

Executar os comandos abaixo (COM USUÁRIO ADMINISTRADOR DO WINDOWS).

A) Entrar no Prompt de Comando da máquina

B) Digitar o comando: cd C:\totvs\CorporeRM\RM.Net

C) Digitar o comando: CorFlags RM.Host.exe /32bit+

D) Digitar o comando: CorFlags RM.Host.Service.exe /32bit+

E) Digitar o comando: CorFlags RM.Lib.Gerador.Execute.exe /32bit+

F) Digitar o comando: Corflags RM.Host.JobRunner.exe /32bit+

G) Reiniciar a máquina e fazer teste.

Caso possua o Client do Oracle 64 bits instalado, não é necessário executar o corflags, pois o serviço do host irá se comunicar em 64 bits, considerando que será utilizado apenas a MDI, para utilizar os aplicativos Delphi, é necessário instalar o Client 32 bits (pois o BDE funciona apenas em 32 bits)

Sistema Operacional 32 bits: necessita do client do Oracle 32 bits e não é necessário executar o Corflags.


Orientações abaixo para ambos SO (32 e 64 bits)

Acesse o diretório “C:\totvs\CorporeRM\RM.Net”. Dentro da pasta informada você deverá encontrar os arquivos Alias.dat, _Broker.dat e Update.dat, e apaga-los. Em seguida execute o arquivo “RM.AliasManager.exe”. Preencha os campos conforme a conexão exige.

Confirme as permissões da conta para iniciar o serviço do host, exemplo:

Local Account, alterando para uma conta de administrador da rede:

 

Verifique se a data/hora/minuto das máquinas que estão envolvidas no processo está igual. Sendo as maquinas Servidor de Banco, Servidor de Terminal Service, Servidor de Processos e Estações clientes.

Confira todos os arquivos configs do seu sistema sendo.

Exemplo:

 Nova MDI: C:\totvs\CorporeRM\RM.Net\ RM.exe.config

  • Labore: C:\totvs\CorporeRM\RMLabore\ RMLabore.exe.config
  • Etc;

 Para ambos as tags deverão ser conferidas:

 <appSettings>

  <add key="JobServer3Camadas" value="false" />

  <add key="Host" value="BHD0005438" />

  • Tag Jobserver sempre com o valor false.
  • Tag Host: Nome da máquina

Acesse o menu Gerenciamento de JOB pela aba Ambiente, selecione todos os registros e delete-os. (Obs.: caso tenha JOB's agendados verifique no campo "Recorrência" estiver preenchidos são JOB's agendados):

Delete os arquivos temporários dos diretórios abaixo:

%temp%

C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp

C:\Windows\ServiceProfiles\LocalService\AppData\Local

Realize a limpeza de logs de Execução de processos, conforme link abaixo:

Limpar Log de Execução de Processos

Limpar Log de Execução de Processos

Servidor de Aplicação e Servidor de Jobs: (Sistema Operacional 32 ou 64 bits) não é necessário executar o corflags, pois os processos são executados em 64 bits.

Clients (Sistema Operacional 64 bits): A recomendação da Totvs é que sejam instalados os Clients do Oracle 32 e 64 bits, em máquinas cujo sistema operacional seja 64 bits. Detalhes no link abaixo:

Instalação do client 32 e 64 bits do Oracle na mesma máquina:

http://tdn.totvs.com/pages/viewpage.action?pageId=274325400

Caso tenha apenas o client do Oracle 32 bits instalado, poderá executar o corflags, conforme orientações abaixo:

Utilização do Corflags:

Antes de realizar os passos abaixo, favor fechar todas as aplicações Totvs e desinstalar o serviço de Host.

Executar os comandos abaixo (COM USUÁRIO ADMINISTRADOR DO WINDOWS).

A) Entrar no Prompt de Comando da máquina

B) Digitar o comando: cd C:\totvs\CorporeRM\RM.Net

C) Digitar o comando: CorFlags RM.Host.exe /32bit+

D) Digitar o comando: CorFlags RM.Host.Service.exe /32bit+

E) Digitar o comando: CorFlags RM.Lib.Gerador.Execute.exe /32bit+

F) Digitar o comando: Corflags RM.Host.JobRunner.exe /32bit+

G) Reiniciar a máquina e fazer teste.

Caso possua o Client do Oracle 64 bits instalado, não é necessário executar o corflags, pois o serviço do host irá se comunicar em 64 bits, considerando que será utilizado apenas a MDI, para utilizar os aplicativos Delphi, é necessário instalar o Client 32 bits (pois o BDE funciona apenas em 32 bits)

Clients (Sistema Operacional 32 bits): necessita do client do Oracle 32 bits e não é necessário executar o Corflags.


Orientações abaixo para ambos SO (32 e 64 bits)

Acesse o diretório da máquina que está sendo utilizada como servidor de processos e vá ao diretório “C:\totvs\CorporeRM\RM.Net”. Dentro da pasta informada você deverá apagar os arquivos Alias.dat e _Broker.dat. Em seguida execute o arquivo “RM.AliasManager.exe”. Preencha os campos conforme a conexão exige

Confirme as permissões da conta para iniciar o serviço do host, exemplo:

Local Account, alterando para uma conta de administrador da rede:

 

Verifique se a data/hora/minuto das máquinas que estão envolvidas no processo está igual. Sendo as maquinas Servidor de Banco, Servidor de Terminal Service, Servidor de Processos e Estações clientes.

Na aba “Serviços” deixe marcada a opção “Habilitar Processamento de Job”, atribua um valor para Execuções Simultâneas” e deixe desmarcada a opção “Executar apenas Job’s Locais” (Desmarque apenas se o ambiente for 3 ou N Camadas). Teste a conexão e caso tenha êxito salve as alterações.

Para um Servidor de Jobs Dedicado a configuração simultânea de Jobs (Execuções Simultâneas), deverá ficar com a nomenclatura de 3 processos de jobs para cada núcleo de CPU do Servidor, conforme imagem abaixo. São 4 processadores e teremos 3 jobs para cada núcleo, então serão 12 processos simultâneos: 

OBS: Caso o valor 0 seja utilizado, o sistema identificará como 3, o numero de execuções simultâneas.

Via nova MDI (RM.EXE) acesse o menu dos SERVIÇOS GLOBAIS > AMBIENTE> COCKPIT.

Na tela clique no botão “Iniciar”. O ícone “Interromper Servidor” ficará habilitado. Em seguida tente executar o processo do sistema novamente. 

Confira todos os arquivos configs do seu sistema sendo.

A)     Máquina local:

Arquivos de configurações dos aplicativos:

Exemplo:

 Nova MDI: C:\totvs\CorporeRM\RM.Net\ RM.exe.config

  • Labore: C:\totvs\CorporeRM\RMLabore\ RMLabore.exe.config
  • Etc;

 Para ambos as tags deverão ser conferidas:

 <appSettings>

  <add key="JobServer3Camadas" value="true" />

  <add key="Host" value="BHD0005438" />

  • Tag Jobserver sempre com o valor true.
  • Tag Host: Nome da máquina

B)      Máquina Servidor / JOBSERVER

Conferir exclusivamente o arquivo config de host C:\totvs\CorporeRM\RM.Net\RM.Host.Service.exe.config

A tag Jobserver, também deverá conter o valor True.

Lembrando que a regra acima, será para todos os arquivos .confg do sistema.

Para maiores informações, acesse o tutorial de instalação para 3 camadas:

http://tdn.totvs.com/pages/releaseview.action?pageId=65209727

Realize a remoção de todas a máquinas no Cockpit:

Reinicie o serviço do RM.Host.Service para que o servidor seja apresentado no Cockpit.

Acesse o menu Gerenciamento de JOB pela aba Ambiente, selecione todos os registros e delete-os. (Obs.: caso tenha JOB's agendados verifique no campo "Recorrência" estiver preenchidos são JOB's agendados):

Delete os arquivos temporários dos diretórios abaixo:

%temp%

C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp

C:\Windows\ServiceProfiles\LocalService\AppData\Local

Realize a limpeza de logs de Execução de processos, conforme link abaixo:

Limpar Log de Execução de Processos

Limpar Log de Execução de Processos


Como os servidores irão trabalhar, conforme configuração dos arquivos sendo: 

1º Situação: 

CONFIG - JOBSERVER3CAMADAS = TRUE

ALIAS - JOBSERVERENABLED = TRUE

ALIAS - LOCALONLY = TRUE

Resultado: Dados nas tabelas GJOBSERVER e GKNOWNJOBSERVER. Executa somente os Jobs que o próprio servidor gerou (servidor e não client) e ninguém processa os seus jobs.

 

2º Situação: 

CONFIG - JOBSERVER3CAMADAS = TRUE

ALIAS - JOBSERVERENABLED = TRUE

ALIAS - LOCALONLY = FALSE

Resultado: Dados nas tabelas GJOBSERVER e  GKNOWNJOBSERVER. Processa qualquer job.

 

3º Situação: 

CONFIG - JOBSERVER3CAMADAS = TRUE

ALIAS - JOBSERVERENABLED = FALSE

ALIAS - LOCALONLY = FALSE

Não irá dado para a tabela GJOBSERVER (Há menos que ligue no Cockpit) e irá para a tabela GKNOWNJOBSERVER

 

4º - Situação: 

CONFIG - JOBSERVER3CAMADAS = FALSE

ALIAS - JOBSERVERENABLED = Independente

ALIAS - LOCALONLY = Independente

Não irá dado para a tabela  GJOBSERVER e nem GKNOWNJOBSERVER. Só estará na tabela GKNOWNJOBSERVER se algum dia o servidor já teve uma das configurações acima.


O RM trabalha com 3 protocolos de comunicação, são eles: HTTP, TCP e NamedPipe.

No protocolo HTTP e no TCP, são utilizadas as portas configuradas no service manager, porém as portas do NamedPipe são geradas em tempo de execução de acordo com algumas regras:

Caso o Pool de processos esteja habilitado, ele gera uma porta aleatória (ex.: BHN050103142:1632027901)
Caso o Pool de processos esteja desabilitado, ele sempre se conecta na porta 0 (ex.: BHN050103183:0)
O NamedPipe só é utilizado para processos prioritários, quando o isolamento de processos está habilitado e não há nenhum jobRunner disponível.

É importante ressaltar que não é possível configurar/controlar/desativar os processos prioritários, tal definição é realizada de acordo com a regra de negócio de cada produto.

Portanto não há nenhum problema estrutural na arquitetura da solução em aparecer na tabela de jobs portas fora do padrão (sejam números aleatórios ou zero), o caso de um jobRunner executando em loop e consumindo muitos recursos, deve ser avaliado com o produto responsável pela execução do processo o motivo de lentidão ou travamento.

Caso a inconsistência continue a ser apresentada, pedimos que habilite o TraceFile em seu ambiente e assim que a inconsistência for apresentada, nos envie o log gerado, junto ao log de Event Viewer do Windows em anexo ao ticket.

Observações:

As  tabelas responsáveis pelo armazenamento das informações relacionadas aos jobs agendados e executados são:

GRELBATCH

GJOBLOG

GJOBXLOG

GJOBXEXECUCAO

GJOBX

GKNOWNJOBSERVERDIAGNOSTIC

GKNOWNJOBSERVER

GJOBSERVER