Descubra nessa postagem como melhorar o desempenho do Protheus realizando o balanceamento de carga do DBAccess.

Várias empresas utilizam o balanceamento de carga nos serviços (AppServer) para que consigam ter uma melhor administração e estabilidade no ERP, fazendo assim a distribuição dos acessos ao Protheus em diversos serviços que podem estar configurados em servidores na rede ou tudo em apenas um servidor.

Você sabia que é possível realizar a distribuição das conexões através do balanceamento de carga do DBAccess? logo abaixo explicamos como fazer a configuração correta do balanceamento e como desfrutar dessa funcionalidade que pode ajudar em muito no desempenho do seu ERP.

Poucos sabem da possibilidade de realizar o balanceamento do DBAccess (topconnect para os mais antigos) ou como configura-lo da melhor maneira.

Estudo de caso: Sabendo que nesse mundo tecnológico nem tudo sai conforme o combinado, me deparei com um ambiente em que o DBAccess estava recebendo mais de 1.000 acessos simultâneos e não estava dando conta de responder a todos de forma satisfatória, ocasionando bloqueios de acesso e queda de performance.

E agora José? Vamos ver abaixo mais detalhes sobre o balanceamento de carga no DBAccess e como configurá-lo:

Um detalhe importante é que o DBAccess que recebe a função de MASTER não é responsável por fazer a distribuição da carga ou das conexões como acontece no balanceamento do appserver. Deste modo, cada serviço do AppServer deve ser explicitamente configurado para se conectar a um DBAccess SLAVE e esse por sua vez é configurado para se conectar ao DBAccess MASTER que vai realizar os controles de LOCK (bloqueios para evitar acesso simultâneo aos registros em alteração) e de licenças de uso do ERP.

Mão na Massa

Usando como exemplo um ambiente com 3 servidores, nomeados SRVDB, SRVAPP1 e SRVAPP2, onde o servidor de banco de dados possui o DBAccess MASTER e os servidores SRVAPP1 e SRVAPP2 possuem cada um 2 serviços do AppServer configurados para se conectar ao DBAccess SLAVE em seus próprios servidores.

A imagem abaixo ilustra o cenário estudado

O atributo alt desta imagem está vazio. O nome do arquivo é dbaccess_1.png

Vamos seguindo passo a passo:

dbAccess.ini

[General]
Mode=SLAVE
MasterServer=SRVDB
MasterPort=7890 ;;Informa a porta do DBAccess configurada no SRVDB

Feito isso em todos os servidores de aplicação, agora devemos configurar o DBAccess MASTER que ficará no SRVDB:

dbAccess.ini

[General]
Mode=MASTER

Fique atento

O License Server deve ser configurado apenas no DBAccess MASTER

Vamos testar?

Exemplo da configuração no appserver.ini do “AppServer Slave01” do nosso cenário:

[DBAccess]
DataBase=MSSQL
Server=SRVAPP1
Port=7890
Alias=P12

Características do DBAccess com balanceamento de carga

Um DBAccess SLAVE somente consegue estabelecer conexão com o banco de dados se conseguir conectar primeiro com o DBAccess MASTER.

O DBMonitor somente tem acesso às informações e conexões processadas naquele serviço. Logo, para localizar uma conexão no ambiente mencionado deve-se abrir um DBMonitor para cada DBAccess SLAVE.

O DBAccess com balanceamento e controle de licenças centralizado no MASTER depende da build com release igual ou superior a 20170202.

Referências

Facebook Comments Box