Hoje várias empresas utilizam o balanceamento de carga nos serviços (AppServer) devido a falha na gerência de memória do appserver e a limitação da plataforma 32 bits, fazendo assim a distribuição dos acessos ao ERP em diversos serviços que podem estar espalhados em servidores na rede.
O que poucos sabem é da possibilidade de realizar o balanceamento também do DBAccess (topconnect para os mais antigos). 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 mil acessos simultâneos e não estava dando conta de responder a todos de forma satisfatória, ocasionando bloqueios de acesso ao top diversas vezes e queda de performance.
E agora José? Vamos ver abaixo mais detalhes sobre o balanceamento de carga no DBAccess e como configurá-lo:
A configuração de balanceamento do DBAccess não é diretamente responsável por fazer distribuição de carga ou das conexões. Deste modo, cada serviço do AppServer deve ser explicitamente configurado para se conectar ao DBAccess Slave e esse DBAccess Slave é configurado para apontar para o DBAccess Master que realizar os controles de LOCK e de licenças.
Topologia Sugerida
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 possuam cada um 2 serviços do AppServer configurados para se conectar ao DBAccess Slave em seus próprios servidores.

Passo a Passo:
- Instale um DBAccess em cada máquina que contém o AppServer (SRVAPP1 e SRVAPP2)
- Configure o ODBC nos servidores SRVAPP1 e SRVAPP2 para conectar no banco de dados do SRVDB
- Configure cada DBAccess nos servidores SRVAPP1 e SRVAPP2 para o modo de acesso SLAVE conforme abaixo:
dbAccess.ini
Mode=Slave
MasterServer=SRVDB
MasterPort=7890 ;;Informa a porta do DBAccess configurada no SRVDB
- Configure o DBAccess no servidor SRVDB para o modo de acesso MASTER conforme abaixo:
dbAccess.ini
Mode=Master
- Inicie o DBAccess no servidor SRVDB
- Inicie o DBAccess nos servidores de aplicação (SRVAPP1 e SRVAPP2)
- Teste as conexões de cada um dos DBAccess usando o DBMonitor
- Altere os arquivos de configuração (appserver.ini) dos servidores SRVAPP1 e SRVAPP2 para acessar o DBAccess Slave do próprio servidor
O License Server deve ser configurado apenas no DBAccess MASTER
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 DBAcccess 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.