CONFIGURAÇÃO DO RM EM N CAMADAS Janus José Júnior – Abril/ 2014 Arquitetura RM ÍNDICE I) Introdução II) Instalação em N camadas III) Cockpit IV) Alias.dat V) Balanceamento Nativo VI) Configuração VII) Principais Tabelas 2 Introdução Introdução O objetivo deste documento é trazer uma visão do que é e como funciona a Arquitetura N Camadas, bem como configurar o ambiente em suas estações para correto funcionamento das aplicações neste cenário. O que é a Arquitetura N camadas? Anteriormente, na Arquitetura Cliente‐Servidor, a camada cliente acessava diretamente a camada de Banco de Dados, além de todos os processos serem executados no cliente, tais como: abertura de formulários, acesso a dados, regras de validação, cálculos e relatórios. A figura abaixo mostra como é a arquitetura Cliente‐Servidor: 3 Introdução Na Arquitetura N camadas, apesar da complexidade do ambiente, a divisão das tarefas em camadas possibilita maior distribuição do processamento do sistema. Cliente - Na camada cliente temos apenas os formulários que serão abertos na execução do programa. APP - A camada de aplicação é responsável pela execução da Regra de Negócio e Cálculos além de fazer a comunicação com a Camada de Banco de Dados. JOB - A camada de Jobs é responsável pela execução dos processos e também faz a comunicação com a Camada de Banco de Dados. 4 Introdução A figura abaixo mostra como é a arquitetura em N camadas 5 Introdução Servidor de Jobs: O que é? É um dos serviços que são executados pelo Host em background, na arquitetura N camadas. Esse serviço é habilitado somente no servidor de Jobs. Ele é responsável por executar os processos que são submetidos pelos aplicativos, que por sua vez entram em uma fila de execução(GJOBXEXECUCAO). Como funciona? -GJOBX – Tabela onde são registrados os processos -GJOBXEXECUCAO – Tabela que controla a fila dos processos 6 Introdução Separação JobServer e AppServer Como fazer? • Habilitar JobServer3Camadas em todos os configs; • Desabilitar a execução de Jobs no AppServer; • Habilitar execução de Jobs no JobServer; • Apontar todos os clientes para o AppServer; • Reiniciar os Hosts. Quais são as vantagens? • Aproveitamento de hardware; • Isolamento para identificar problemas; 7 Instalação em N camadas Para Instalar o RM em N Camadas, é necessário realizar os seguintes passos: Servidor de Aplicação Instalar a Biblioteca RM no Servidor de Aplicação (no momento de instalação, selecionar ambiente 3 camadas e Server) Ao selecionar Modo Server serão copiados para a pasta de instalação somente os arquivos necessários para o processamento de informações, ou seja, arquivos necessários para a execução do Host. Nesta opção, só é possível acessar a MDI, não é possível executar os aplicativos separadamente. 8 Instalação em N camadas Client Instalar a Biblioteca RM em cada Cliente (no momento de instalação, selecionar ambiente 3 camadas e Client). Após esse passo será necessário informar o servidor Aplicação e porta de comunicação. (padrão 8050). Ao selecionar o Modo Client serão copiados para a pasta de instalação somente os arquivos necessários para execução dos sistemas. O sistema será configurado para direcionar todo o processamento de dados para o Servidor de Aplicação, ou seja, o processamento de dados será realizado na máquina em que a Biblioteca for instalada selecionando a opção Modo Server. 9 Instalação em N camadas Servidor de Job Para instalar um servidor de Jobs Server, temos que seguir os mesmo passos de instalação de um servidor de Aplicação e após concluirmos a instalação da Biblioteca RM, iremos habilitar o processamento de Jobs no servidor. 10 Instalação em N camadas Existem duas formas de habilitarmos o processamento de Jobs: Para que o mesmo seja iniciado juntamente com o host, é necessário acessarmos o gerenciamento de Alias e marcar a falg (Habilitar processamento de Jobs). Obs. Essa é uma configuração realizada para cada Alias, ou seja, o Host só processará o Job da base onde a flag estiver marcada. Para acessar as configurações do Alias, acesse o executável conforme imagens abaixo: 11 Cockpit Também podemos utilizar o Cockpit para iniciar o processamento de Jobs de forma manual. Todos as máquinas que estiverem executando um Host serão adicionadas ao Cockpit, nele é possível identificar se as máquinas estão ou não executando processos. 12 Alias.dat As configurações do RM.AliasManager.exe, são armazenadas no arquivo Alias.dat. <DbConfig> •Habilita o processamento de Jobs <Alias>_local</Alias> <DbType>SqlServer</DbType> <DbProvider>SqlClient</DbProvider> •Determina a quantidade de Jobs <DbServer>T000000452</DbServer> executados simultaneamente. <DbName>RM1160</DbName> <UserName>SYSDBA</UserName> <Password>masterkey</Password> •Determina se o servidor irá <RunService>true</RunService> processar somente seus próprios <JobServerEnabled>true</JobServerEnabled> Jobs. <JobServerMaxThreads>3</JobServerMaxThreads> <JobServerLocalOnly>false</JobServerLocalOnly> <JobServerPollingInterval>10</JobServerPollingInterval> •Define o intervalo de <ChartAlertEnabled>false</ChartAlertEnabled> monitoramento da fila de processos. <ChartAlertPollingInterval>20</ChartAlertPollingInterval> <ChartHistoryEnabled>false</ChartHistoryEnabled> <ChartHistoryPollingInterval>20</ChartHistoryPollingInterval> <RSSReaderMailEnabled>false</RSSReaderMailEnabled> <RSSReaderMailPollingInterval>10</RSSReaderMailPollingInterval> </DbConfig> 13 Balanceamento Nativo Balanceamento Nativo: • Podemos configurar um cliente para utilizar dois servidores de APP, assim distribuindo a carga entre eles e melhorando a performance do sistema. As figuras abaixo exemplificam como será o funcionamento do sistema: Nesse cenário o sistema fará o balanceamento por requisição, alternando as requisições entre os servidores. 14 Balanceamento Nativo Como configurar o Balanceamento Nativo? A máquina cliente será apontada para dois ou mais servidores de aplicação. No arquivo .config do aplicativo (exemplo: C:\totvs\CorporeRM\RM.Net.exe.config), vamos inserir as tags PORT e HOST apontando para o outro servidor da seguinte forma: Lembrando que poderá ter mais de dois servidores de aplicação. Neste caso, temos que continuar identificando as tags: Host3, Host4, Port3 e Port4. 15 Configurações Gerais Para garantirmos o correto funcionamento do sistema em um ambiente N camadas, os arquivos de configurações devem ser configurados respeitando as orientações a seguir. Aliaspath Defini um único alias.dat para ser utilizado por todos os Servidores de aplicação do ambiente, para isso, devemos adicionar a tag nos arquivos RM.AliasManager.exe.config, RM.Host.exe.config e RM.Host.Service.exe.config. Exemplo: <add key=“Aliaspath” value=“\\Servidor\Pasta” /> Obs. Como a configuração dos Alias no Servidor de APP é diferente do Servidor de Jobs, devemos utilizar um Alias para os servidores de Jobs e outro para os servidores de APP. FileServerPath Definir um único diretório para geração e leitura de arquivos temporários, assim todos os Hosts do ambiente irão gerar os arquivo somente nesse diretório. Desta forma, em ambientes que trabalham em N camadas, devemos adicionar a tag nos arquivos RM.Host.exe.config ou RM.host.Service.exe.config de todos os servidores de APP e Job. Exemplo: <add key=“FileServerPath” value=“\\Servidor\Pasta” /> 16 Configurações Gerais LogPath Defini o caminho onde serão gerados os logs do sistema. Exemplo: <add key=“LogPath” value= “\\Servidor\Pasta” /> LOCALIZATIONLANGUAGE A tag LOCALIZATIONLANGUAGE determina em qual linguagem o sistema irá funcionar, habilitar essa tag evita que o RM valide qual a linguagem o sistema operacional esta configurado. Exemplo: <add key=“LOCALIZATIONLANGUAGE” value “pt-BR” /> ENABLECOMPRESSION Habilita a compressão de dados para melhorar o desempenho da rede, contudo o custo para compactação e descompactação dos dados em redes Gigabits, pode ser superior a transferencias sem a compactação. Assim é recomendado que em redes Gigabits a compactação de dados seja desabilitada. Exemplo: <add key=“ENABLECOMPRESSION” value “true” /> 17 Configurações Oracle Visando melhorar a performance de acesso em bancos Oracle, existe um cache para armazenagem de dados do schema da base de dados. Este cache se faz necessário pois o "GetSchema" no Oracle tem um custo bastante caro. Para a correta utilização do mesmo, deve-se parametrizar o Config do Host da seguinte forma: UseDbSchemaCache Indica se o sistema guardará em cache os esquemas obtidos pelas consultas. Exemplo: <add key="UseDbSchemaCache" value="true" /> DbSchemaCacheMaxSize Define a quantidade de schemas que serão guardados em cache. Exemplo: <add key="DBSchemaCacheMaxSize" value=“5000"/> Importante: Apesar do valor default ser 100, o valor ideal de acordo com testes já realizados é 4000. Este valor deve ser utilizado com bastante critério, visto que, se o mesmo for muito grande, pode-se comprometer a performance do banco. 18 Outras configurações Antivírus O custo para o antivírus monitore um pasta ou arquivo geralmente é alto, sendo assim, devemos configurar uma exceção no antivírus, para que o mesmo não monitore a pasta de instalação do RM. Segue abaixo os links para configuração do BDE. BDE - Instalação e Configuração SQL - http://tdn.totvs.com/x/DwaxAw BDE - Instalação e Configuração Oracle - http://tdn.totvs.com/x/oQWxAw 19 Principais Tabelas Tabelas relacionadas a fila de processos • GRELBATCH • GJOBLOG • GJOBXLOG • GJOBXEXECUCAO • GJOBX Tabela relacionada ao log de auditoria. • Zlog Tabela relacionada ao histórico da execução de Cubos. • Qcubodata Essas tabelas armazenam grande número de informações e por isso devemos executar o processo de manutenção periodicamente. 20 CONFIGURAÇÃO DO RM EM N CAMADAS QUESTÕES ? Acesse a nossa comunidade R@ FRAMEWORK 21 21