Í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 |
---|
icon | false |
---|
title | Como instalar |
---|
|
Deck of Cards |
---|
| Card |
---|
label | Arquivo (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"/>
</appSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration> |
|
Card |
---|
label | Arquivo (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> |
Aviso |
---|
| A tag “DBName” está sem valor e a instância foi informada na tag “DBServer”. |
|
Card |
---|
| Abaixo segue a lista de parâmetros que podem ser adicionados a este arquivo bem como o que realiza cada um: Informações |
---|
| <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 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: Image Modified | Depois da Limpeza: Image Modified |
---|
Aviso |
---|
| - 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 |
---|
| <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).
Aviso |
---|
|
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 |
---|
|
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 |
---|
|
Deck of Cards |
---|
| Card |
---|
| Image Modified |
Card |
---|
| Image Modified |
Card |
---|
| 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
Aviso |
---|
|
- 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 <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:
- 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.
- 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
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