Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: binary and image files updated

...

English

Pagetitle
ByYou DBAccess - Configuração distribuída
ByYou DBAccess - Configuração distribuída

ByYou DBAccess - Configuração distribuída

A topologia do ByYou DBAccess exige um serviço único para emular o controle de lock de registro ISAM. Para ser possível escalar a aplicação para atender a mais conexões simultâneas, o ByYou DBAccess pode ser configurado para trabalhar em uma configuração distribuída, onde um serviço do ByYou DBAccess é configurado como Master, que terá a função de centralizar o controle de acessos mutuamente exclusivos (locks), e os demais serviços devem ser configurados como Slaves, e através deles serão realizadas as conexões e operações com o SGBD.

A configuração distribuída não é diretamente responsável por fazer distribuição da carga ou das conexões. Deste modo, cada serviço do ByYou Application Server deve ser explicitamente configurado para realizar as conexões de dados em um ByYou DBAccess "Slave", onde o balanceamento efetivo das conexões já foi realizado pelo engine de balanceamento do ByYou Application Server, e cada ByYou DBAccess "Slave" é configurado para apontar para o "Master" para fazer as operações de lock.

 

Topologia sugerida

Partindo de um ambiente hipotético com 3 servidores, nomeados SRVDB, SRVAPP1 e SRVAPP2, onde o servidor de banco de dados possui um banco MSSQL Server e um ByYou DBAccess e os servidores APP1 e APP2 possuam cada um 4 serviços do ByYou Application Server, configurados em modo de balanceamento de carga, neste cenário os serviços do ByYou Application Server de todos os equipamentos apontam para um único ByYou DBAccess, instalando na máquina de banco (SRVDB), onde têm um ODBC configurado para o ByYou DBAccess.

 

Image RemovedImage Added

sf

Procedimento

Para implementar a configuração distribuída do ByYou DBAccess, são necessários os seguintes passos:

  1. Instale um ByYou DBAccess em cada máquina que contém o ByYou Application Server (SRVAPP1 e SRVAPP2).
  2. Configure o ODBC para o banco de dados em cada uma das máquinas (SRVAPP1 e SRVAPP2).
  3. Configure cada ByYou DBAccess, instalado nas máquinas Slave, para o modo de acesso Slave.
  4. Pare o serviço do ByYou DBAccess da máquina de banco de dados (SRVDB).
  5. Configure o ByYou DBAccess, da máquina de banco de dados, para o modo de acesso Master.
  6. Execute o ByYou DBAccess da máquina de banco de dados (SRVDB).
  7. Execute o ByYou DBAccess das máquinas que contém o ByYou Application Server (SRVAPP1 e SRVAPP2).
  8. Teste as conexões, de cada um dos ByYou DBAccess, usando o ByYou DBMonitor.
  9. Altere os arquivos de configuração (appserver.ini), dos serviços da máquina SRVAPP1, para acessar o ByYou DBAccess da própria máquina.
  10. Altere os arquivos de configuração (appserver.ini), dos serviços da máquina SRVAPP2, para acessar o ByYou DBAccess da própria máquina.

 

Para configurar o ByYou DBAccess para modo de conexão Master, deve-se abrir o arquivo de configuração (dbaccess.ini), do ByYou DBAccess, e na seção [General] inserir a chave Mode.

Mode=Master

 

Para configurar os ByYou DBAccess para modo Slave, deve-se abrir o arquivo de configuração (dbaccess.ini) e configurar as seguintes chaves:

Mode=SlaveMasterServer=<IP>MasterPort=<Port>

Onde <IP> e <Port> correspondem ao IP e Porta do ByYou DBAccess Master que será utilizado como servidor de locks para os demais ByYou DBAccess Slave.

 

Características operacionais da configuração distribuída

Um ByYou DBAccess Slave somente consegue estabelecer conexão com o banco de dados, se conseguir conectar primeiro com o ByYou DBAccess Master. Caso o ByYou DBAccess Master não esteja no ar ou esteja configurado de forma incorreta, o ByYou DBAccess retornará erro de conexão -43 ao ByYou Application Server.

O ByYou DBAccess Master é uma aplicação crítica e deve estar sempre no ar. Se o ByYou DBAccess Master for derrubado durante a operação do sistema (ERP), as conexões dos Slaves serão derrubadas assim que qualquer recurso que dependa do Master (Lock de registro, controle de numeração de tabelas. virtual lock, table cache). Para o ByYou Application Server, será retornado o erro -2 (NO_CONNECTION), indicando que a conexão entre o ByYou Application Server e o ByYou DBAccess foi perdida, e nos logs do ByYou DBAccess será registrado que a causa do fechamento da conexão foi falha de comunicação como ByYou DBAccess Master.

A interface de monitoramento (ByYou DBMonitor) somente têm acesso às informações e conexões processadas naquele serviço. Logo, para localizar uma conexão no ambiente mencioando, deve-se abrir um ByYou DBMonitor para cada ByYou DBAccess Slave. Da mesma forma, os recursos de bloqueio de conexão e liberação de conexão ainda são individuais. Bloqueas novas conexões do ByYou DBAccess Master não bloqueia novas conexões do ByYou DBAccess Slave.

Além disso, outro ponto importante, é a respeito das configurações: As configurações devem ser replicadas, de modo que cada ByYou DBAccess esteja configurado apontando para uma configuração ODBC que aponte para o mesmo banco de dados, ou ainda apontar para o mesmo banco de dados um ou mais ByYou DBAccess configurados como Slaves e apontar também para o mesmo banco de dados um ByYou DBAccess configurado como StandAlone (Padrão sem distribuição). Discrepâncias desta natureza, não têm como serem detectadas pelo ByYou DBAccess, e caso sejam realizadas, podem causar comportamentos inesperados e fatalmente prejudiciais a aplicação.

 

Flexibilidade de Configuração

O ByYou DBAccess Master não precisa necessariamente ficar junto com a máquina de banco de dados. O ByYou DBAccess pode ser um serviço instalado em um servidor de aplicação, em uma porta diferente da 7890, e como o seu controle será exclusivamente para bloqueio de registros, seu consumo de memória será bem inferior aos serviços ByYou DBAccess Slaves. E, é possível configurar um ByYou DBAccess Master em uma plataforma diferente dos demais Slaves, por exemplo um Master em uma máquina Linux e os demais ByYou DBAccess Slaves em máquinas Windows. Além disso, podemos também colocar mais de um ByYou DBAccess Slave no mesmo equipamento, desde que configurado em outra porta.

Embora seja possível, não é recomendável, que sejam utilizados ByYou DBAccess Slaves para o mesmo banco de dados/ambiente em plataformas distintas, por exemplo um ByYou DBAccess Slave em Windows e outro em Linux.

 

Build do ByYou DBAccess para uso do recurso distribuído

A utilização do ByYou DBAcces em modo distribuído requer uma build com release igual ou superior a 20100510.