Versões comparadas

Chave

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

Índice:


       

Índice
exclude.*ndice:


Objetivo:


       O objetivo deste documento é trazer uma visão do que é e como habilitar o RM.Host.Cleanner. 

Introdução:


     O que é o RM.Host.Cleanner?

        O RM.Host.Cleanner tem a finalidade de limpar arquivos e dados temporários da base de dados, diminuindo a utilização de espaço em disco e melhorando a performance de uma forma geral. 

         Ele é completamente parametrizável, incluindo as operações que irá executar e o intervalo de execução das mesmas. O Cleanner é seletivo quanto aos itens a serem removidos e apaga apenas itens que já existam há um determinado tempo, tempo este que é também parametrizável.

Como instalar: 


       O RM.Host.Cleanner é um serviço do Windows. Para instalá-lo é necessário criar o arquivo RM.Host.Cleanner.exe.config na pasta RM.net.


Informações
iconfalse
title Como instalar
Deck of Cards
idConfiguração:  
Card
labelArquivo (RM.Host.Cleanner.exe.config) para Oracle:

Exemplo do arquivo (RM.Host.Cleanner.exe.config) para base Oracle:

Bloco de código
<?xml version="1.0"?>
<configuration>
  <appSettings>
    <add key="CleaningInterval" value="1"/>
    <add key="PathToClean" value="C:\totvs\CorporeRM"/>
    <add key="RemoveFoldersOlderThan" value="1"/>
    <add key="RemoveJobsOlderThan" value="1"/>
    <add key="DBServer" value="sterm-pt01/SCOPA"/>
    <add key="DBName" value=""/>
    <add key="DBUser" value="rm"/>
    <add key="DBPassword" value="rm"/>
	<add key="RemoveSnowdenLogsOlderThan" value="20"/>
 

...

   <add key="UseDevartDirect" value="false" />
  </appSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
Aviso
titleObservação

A tag  “DBName” está sem valor e a instância foi informada na tag “DBServer”.

A tag "UseDevartDirect=true" habilita a conexão ao banco Oracle para o caso do Servidor não possuir o Client Oracle instalado.

Mais informações: Vantagens em utilizar Direct mode (Oracle)

Card
labelArquivo (RM.Host.Cleanner.exe.config )para SQL:

Exemplo do arquivo (RM.Host.Cleanner.exe.config )para base SQL:

Bloco de código
<?xml version="1.0"?>
<configuration>
  <appSettings>
    <add key="CleaningInterval" value="1"/>
    <add key="PathToClean" value="C:\totvs\CorporeRM"/>
    <add key="RemoveFoldersOlderThan" value="1"/>
    <add key="RemoveJobsOlderThan" value="1"/>
    <add key="DBServer" value="T000000339"/>
    <add key="DBName" value="EXEMPLO1181"/>
    <add key="DBUser" value="rm"/>
    <add key="DBPassword" value="rm"/>
	<add key="RemoveSnowdenLogsOlderThan" value="20"/>
  </appSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

...

titleObservação

...

Card
labelParâmetros

       Abaixo segue a lista de parâmetros que podem ser adicionados a este arquivo bem como o que realiza cada um: 

Informações
iconfalse

(obrigatório): <add key="CleaningInterval" value="30"/> - Indica o intervalo de tempo em minutos no qual o Cleanner vai executar a limpeza. Esse intervalo indica de quanto em quanto tempo o Cleanner irá verificar se existem itens a serem excluídos e executar a exclusão caso necessário.

...

(obrigatório): <add key="PathToClean" value="C:\totvs\CorporeRM"/> - Indica o caminho das pastas temporárias criadas pelos aplicativos Delphi, e também o caminho dos logs de processo que deverão ser excluídos. Note que o caminho da pasta de processos é por padrão uma pasta raiz – assim todas as subpastas temporárias e de logs serão percorridas pelo aplicativo e poderão ser “limpas”


Aviso
titleAtenção

Toda parte de Deleção de arquivos, sempre respeitará a tag RemoveFoldersOlderThan.

Caso a pasta/arquivo tenha sido alterada em um período inferior ao número de dias informados na tag RemoveFoldersOlderThan os arquivos/pastas não serão excluídos.

PathToClean deve ser configurada no Config do RM.Host.Cleaner

LogPath deve ser configurada no Config do RM.Host utilizado sendo ele RM.Host.Service.exe ou RM.Host.exe

Path.GetTempPath() - É o caminho das pastas temporárias do Windows do usuário utilizado no Serviço RM.Host utilizado.

O RM.Host.Cleanner não realiza a limpeza da pasta FileServerPath.

Os logs do TraceFile gerados no diretório RM.Net\Processos\Logs\ não serão limpos.


 <add key="RemoveFoldersOlderThan" value="12"/> - Indica o tempo em dias que uma das pastas temporárias criadas pelos aplicativos em Delphi ou pelo log de processos deve existir em disco antes que seja removida.


       No caso das pastas, serão deletadas apenas as pastas cuja data também atender ao critério data/hora atual menos o parâmetro "RemoveJobsOlderThan", e APENAS subpastas dos seguintes caminhos:

  • ...\Processos\Logs\
  • ...\RM.NET\Processos\Logs\

     

...

       Ao criar o diretório "Processos\Logs" dentro da pasta "CorporeRM" e adicionar o mesmo conteúdo contido na "FileServerPath", é possível identificar que a pasta Logs também é limpa correntemente.  

...

 Apenas subpastas encontradas abaixo desses dois caminhos serão removidas,

...

arquivos permanecerão. Um outro ponto é que se a pasta estiver em uso por qualquer aplicativo do sistema ela não será removida, e isso pode incluir o próprio Windows Explorer ou qualquer outro software residente na memória da máquina como Anti-Virus.

...

Antes da Limpeza:

Image Removed

...

Depois da Limpeza:

Image Removed

       

Aviso
titleObservação
  • O RM.Host.Cleanner não realiza a limpeza das pastas apontadas nas tags FileServerPath e LogPath.
  • O RM.Host.Cleanner não valida as extensões dos arquivos para efetuar a limpeza.
  • Caso seja necessário a exclusão do conteúdo das pastas FileServer e LogPath, estas pastas devem ser criadas dentro dos diretórios citados acima. 
  • Para arquivos de Logs e txt de processos gerados por rotinas dos aplicativos RM, por exemplo, RM Labore, é necessário adicionar nas configurações do parametrizador, um dos caminhos ou pastas citados acima.
  • Limpeza de outros diretórios devem ser realizados manualmente.
Informações
iconfalse

 <add key="RemoveJobsOlderThan" value="7"/> - Indica o tempo em dias que um job (processo) deve existir na base de dados antes que seja excluído.

 <add key="DBServer" value=""/> - Indica o servidor de banco de dados a que o serviço irá se conectar para limpar os Jobs (processos)

 <add key="DBName" value=""/> - Indica a base de dados a que o serviço irá se conectar para limpar os Jobs (processos)

 <add key="DBUser" value=""/> - Indica o usuário para conexão à base de dados onde os Jobs (processos) serão limpos

 <add key="DBPassword" value=""/> - Senha para acesso à base de dados onde os Jobs (processos) serão limpos. Para efeitos de segurança, o arquivo pode ser protegido contra leitura por um administrador de rede, por exemplo.

<add key="RemoveSnowdenLogsOlderThan" value="20"/> - Indica o tempo em dias que os logs críticos do RM devem ser mantidos na base de dados.

       Após criar o arquivo .config,

...

basta acessar o diretório: C:\totvs\CorporeRM\RM.Net e executar COMO ADMINISTRADOR o arquivo em lotes "Instalar RM.Host.Cleanner.bat". Este arquivo .bat já instala a aplicação como um serviço e, logo após a sua execução, já será possível visualizar o mesmo na janela de “Serviços” do Windows (digite “services.msc” na janela “Executar” do Windows).

Aviso
titleAtenção

            O usuário que executa o serviço do Host Cleanner deve ser o mesmo que executa o RM.Host.Service, caso contrário ele limpará diretórios distintos.

       O Cleanner deverá existir em cada máquina onde houver necessidade de fazer essa limpeza, e é útil principalmente em servidores de Terminal (Terminal Services).

       Recomendamos que o RM.Host.Cleanner seja instalado somente nos servidores (APP e TS) uma vez que as estações client, não geram grandes volumes de arquivos temporários.

Image Modified

Informações
titleObservação

Após a instalação, o serviço está instalado mas ainda não iniciou.  

Para iniciá-lo é necessário reiniciar o sistema (o serviço inicia automaticamente após isso) ou realizar uma inicialização forçada através do “Serviços” do Windows ou via Prompt de Comando (comando “net start RM.Host.Cleanner”). 

       Outra forma de ativar o RM.Host.Cleanner é através da instalação da Biblioteca RM, na qual é possível realizar a parametrização.

 Passo a passo para realizar a parametrização:

Informações
iconfalse
Deck of Cards
id.
Card
label1° Passo:

Image Modified

Card
label2° Passo:

 Image Modified

Card
label3° Passo:
Image Modified

 

Principais tabelas:  


  • CAGLOTE: Agendamento de integração de lotes
  • GJOBX: Armazena os Jobs
  • GJOBLOG: Processos executados
  • GJOBXCHANGELOG: Log de alterações do processo. (Versão 12.1.24 ou superior)
  • GJOBXLOG: Armazena o log de execução dos jobs
  • GJOBXEXECUCAO: Execução de Jobs
  • GJOBXEXECUCAOHST: Histórico de execução dos jobs (A partir da versão 12.1.31 - Veja em: Melhorias no funcionamento do Job)
  • QCUBODATA: Armazena os dados dos cubos e histórico de execução
  • GRELBATCH: Armazena os relatórios que foram gerados via job
  • GJOBQUEUE: Processos na fila para serem executados
  • GCRITICALLOG: Tabela responsável por armazenar os logs críticos.
  • GSNOWDENCACHE: Tabela de cahce das consultas do Snowden


Aviso
iconfalse
  • Os registros da última atualização de cada cubo ficam armazenados na tabela QCUBODATA. O RM.Host.Cleanner deleta os registros anteriores a última atualização dos cubos.
  • Para que os valores da QCUBODATA não sejam apagados adicione a tag

...

  • <add key="IgnoreCuboData" value="true"/> no app.config do RM.Host.Cleanner.
  • O usuário de Banco de Dados utilizado na ativação do RM.Host.Cleanner deve possuir grants relacionados a INSERT, UPDATE, DELETE nas tabelas citadas acima.

Regra para limpeza de arquivos e diretórios: 


       O RM.Host.Cleanner segue a seguinte regra para limpeza de arquivos e diretórios:

  • No diretório temporário do usuário (C:\Users\UserName\AppData\Local\Temp) serão removidos:
    1. Todos os arquivos com a extensão *.tmp e *.ResourceStrings.
  • No diretório definido pela tag <add key="PathToClean"> (caso não esteja configurado, será considerado o diretório onde se encontra o RM.Host.Cleanner) serão removidos:

    1. Todos os sub-diretórios que comecem com _RM e terminem com .TMP (_RM*.TMP), bem como seus respectivos arquivos.

    2. Todos os sub-diretórios dentro de "PathToClean"\RM.Net\Processos\Logs\, bem como seus respectivos arquivos.

    3. Todos os sub-diretórios dentro de "PathToClean"\Processos\Logs\, bem como seus respectivos arquivos.

Aviso
titleImportante:

A limpeza é realizada nos sub-diretórios e seus respectivos arquivos.

Os arquivos "soltos" do diretório: "PathToClean"\Processos\Logs\ não serão limpos.

Exemplo: 

No diretório C:\TOTVS\CorporeRM\RM.Net\Processos\Logs existem pastas e arquivos:

Image Added

Quando realizada a execução do RM.Host.Cleanner, perceba que as pastas foram apagadas, mas os arquivos soltos permaneceram no diretório.

Image Added

  • No diretório definido pela tag <add key="LogPath"> do arquivo RM.Host.Service.exe.config, serão removidos:

    • Todos os sub-diretórios, bem como seus respectivos arquivos.
Aviso
titleImportante:
  • O Host.Cleanner não realiza a limpeza da pasta FileServerPath.

  • Os logs do TraceFile gerados no diretório RM.Net\Processos\Logs\ não serão limpos.

Observações: 


       Segue o critério do serviço para determinar o que deve ou não ser removido da base:

  • Jobs que já foram executados (DATAFIMEXEC não nula), com sucesso ou não, anteriormente à data calculada de acordo com a parametrização RemoveJobsOlderThan serão apagados. Ou seja, todos os jobs executados com status diferente de 0 ou 1, serão apagados. 
  • Jobs com status 3 ou 7 serão deletados independente de terem iniciado a execução. Obs: A partir das versões 12.1.33.266, 12.1.34.166, 12.1.2205.108 apenas os jobs que tenham a data de última alteração anterior à data calculada de acordo com a parametrização RemoveJobsOlderThan serão apagados.
  • Jobs recorrentes terão somente as suas execuções já finalizadas e de acordo com os critérios acima apagadas. O registro do Job (GJOBX) será mantido para as futuras execuções recorrentes. 

       Abaixo segue uma lista com todos os status possíveis dos jobs e seus significados:

  • None = 0 - O Job ainda não foi executado
  • Running = 1 - O Job está em execução
  • Finished = 2 - O Job terminou normalmente a sua execução
  • Canceled = 3 - A execução do Job foi cancelada
  • Stopped = 4 - A execução do Job começou e foi interrompida
  • Error = 5 - Erro na execução do job
  • Warning = 6 - O Job foi executado com avisos
  • Failed = 7 - Houve uma falha no servidor durante a execução do Job e a mesma não terminou corretamente.
  • Disabled = 8 - A execução do job está suspensa até ele ser habilitado novamente. Se ele for habilitado antes da sua hora programada ele roda normalmente, se for depois da sua hora programada e ele tiver recorrência, sua recorrência é recalculada e ele é atualizado para aquela data/hora recalculada; se ele não tiver recorrência, seu status vira Canceled.
  • NoJobServerAvailable = 9 - No momento da execução do Job, um servidor capaz de processar o Job não estava ativo.

Recomendação sobre a base da dados: 


       Por segurança, recomendamos a criação de um usuário de banco específico para o uso do RM.Host.Cleanner.  

       Após criar o usuário, será necessário liberar o grant para as tabelas abaixo:

  • GJOBX 
  • GJOBXEXECUCAO
  • GJOBXEXECUCAOHST (A partir da versão 12.1.31 - Veja em: Melhorias no funcionamento do Job)
  • GJOBXCHANGELOG 
  • GJOBXLOG 
  • GJOBLOG 
  • GRELBATCH 
  • GJOBQUEUE 
  • CAGLOTE 
  • QCUBODATA 
  • GUSUARIO 
  • GSNOWDENCACHE
  • GCRITICALLOG

Como desinstalar: 


       Para desinstalar o serviço basta rodar o arquivo em lotes "Desinstalar RM.Host.Cleanner.bat", disponível no diretório: C:\totvs\CorporeRM\RM.Net


Informações
iconfalse
Informações
iconfalse

Produto: Framework

Informações
iconfalse

Versão: 11.82.XX e 12.1.XX

Informações
iconfalse

Processo: Configuração do RM.Host.Cleanner

Informações
iconfalse
Informações
iconfalse

Status: Finalizado

Informações
iconfalse

Data:  

Informações
iconfalse

Autores:

Adriano Diniz Agrizzi 

Erlon Cesar Lima De Freitas

Flavio Henrique Pereira Campelo

Gustavo Naves De Castro

Lorena Roberta de Paiva Braga

Renan Ramos Moura

Wesley Avelino De Carvalho