Í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.

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

<?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"/>
  </appSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

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

<?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>

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

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

<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.


 <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”.


 <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\

       Foram copiados todos os arquivos gerados na pasta da FileServerPath para o diretório...\RM.NET\Processos\Logs\ e verificado que o RM.Host.Cleanner realizou a limpeza. 

       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.  

       Ao criar uma pasta chamada “temp” no diretório C:\totvs\CorporeRM que adicionar o mesmo conteúdo contido na "FileServerPath" é possível identificar que a pasta Logs não é limpa, ou seja, apenas subpastas encontradas abaixo desses dois caminhos serão removidas, o HostCleanner somente realizara a limpeza quando a pasta em que se deseja exclusão estiver dentro dos caminhos mencionados acima.

       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:

Depois da Limpeza:

       

  • 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.

 <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, desinstalar o host e deletar o broker, basta acessar o diretório C:\totvs\CorporeRM\RM.Net e executar 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).

            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.

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:

 

 

Principais tabelas:  



  • 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.

Observações: 


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

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

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:

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