Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/327912/newLayout.css

...

Pagetitle

...

TOTVS | DBAccess - Configuração distribuída

...

TOTVS | DBAccess - Configuração distribuída

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue

...

- Configuração distribuída

A

...

topologia

...

do

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
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
Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
 pode ser configurado para trabalhar em uma configuração distribuída, onde um serviço do
Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
é 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 

Inclusão de trecho
Application Server
Application Server
nopaneltrue
deve ser explicitamente configurado para realizar as conexões de dados em um

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
 "Slave", onde o balanceamento efetivo das conexões já foi realizado pelo engine de balanceamento do

...

Inclusão de trecho
Application Server
Application Server
nopaneltrue
, e cada

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
 "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

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
e os servidores APP1 e APP2 possuam cada um 4 serviços

...

do

Inclusão de trecho
Application Server
Application Server
nopaneltrue
, configurados em modo de balanceamento de carga, neste cenário os serviços

...

do

Inclusão de trecho
Application Server
Application Server
nopaneltrue
 de todos os equipamentos apontam para um único

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
, instalando na máquina de banco (SRVDB), onde têm um ODBC configurado para o

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
. Nesse cenário, a seguinte topologia é sugerida:


Image Added

 

Image Removed

sf

Procedimento

Para implementar a configuração distribuída do

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
, são necessários os seguintes passos:

  1. Instale um

...

  1. Inclusão de trecho
    DBAccess
    DBAccess
    nopaneltrue
    em cada máquina que contém

...

  1. o
    Inclusão de trecho
    Application Server
    Application Server
    nopaneltrue
     (SRVAPP1 e SRVAPP2).
  2. Configure o ODBC para o banco de dados em cada uma das máquinas (SRVAPP1 e SRVAPP2).
  3. Configure cada

...

  1. Inclusão de trecho
    DBAccess
    DBAccess
    nopaneltrue
    , instalado nas máquinas Slave, para o modo de acesso Slave.
  2. Pare o serviço do

...

  1. Inclusão de trecho
    DBAccess
    DBAccess
    nopaneltrue
    da máquina de banco de dados (SRVDB).
  2. Configure o

...

  1. Inclusão de trecho
    DBAccess
    DBAccess
    nopaneltrue
    , da máquina de banco de dados, para o modo de acesso Master.
  2. Execute o

...

  1. Inclusão de trecho
    DBAccess
    DBAccess
    nopaneltrue
    da máquina de banco de dados (SRVDB).
  2. Execute o

...

  1. Inclusão de trecho
    DBAccess
    DBAccess
    nopaneltrue
    das máquinas que contém

...

  1. o
    Inclusão de trecho
    Application Server
    Application Server
    nopaneltrue
     (SRVAPP1 e SRVAPP2).
  2. Teste as conexões, de cada um dos

...

  1. Inclusão de trecho
    DBAccess
    DBAccess
    nopaneltrue
    , usando o 
    Inclusão de trecho
    DBMonitor
    DBMonitor
    nopaneltrue
    .
  2. Altere os arquivos de configuração (appserver.ini), dos serviços da máquina SRVAPP1, para acessar o

...

  1. Inclusão de trecho
    DBAccess
    DBAccess
    nopaneltrue
    da própria máquina.
  2. Altere os arquivos de configuração (appserver.ini), dos serviços da máquina SRVAPP2, para acessar o

...

  1. Inclusão de trecho
    DBAccess
    DBAccess
    nopaneltrue
    da própria máquina.

...


Para configurar o

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
para modo de conexão Master, deve-se abrir o arquivo de configuração (dbaccess.ini), do

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
, e na seção [General] inserir a chave Mode.

Bloco de código
Mode=Master
 

Para configurar os

...

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

Bloco de código
Mode=SlaveMasterServer=
<IP>MasterPort
<IP>
MasterPort=<Port>

Onde <IP> e <Port> correspondem ao IP e Porta do

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Master que será utilizado como servidor de locks para os demais

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Slave.

 


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

Um

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Slave somente consegue estabelecer conexão com o banco de dados, se conseguir conectar primeiro com o

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
 Master. Caso o

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
 Master não esteja no ar ou esteja configurado de forma incorreta, o

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
retornará erro de conexão -43

...

(DBSERVER_INITERROR) ao

Inclusão de trecho
Application Server
Application Server
nopaneltrue
.

Devido ao

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Master centralizar o serviço de controle de locks, o Master não realiza conexão com os SGBDs, que retorna erro -35 (NO_DB_CONNECTION) ao tentar conectar com o SGBD e mostra em console a mensagem: Invalid TopClient Connection on DBACCESS MASTER.

O

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Master é uma aplicação crítica e deve estar sempre no ar. Se o

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
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

Inclusão de trecho
Application Server
Application Server
nopaneltrue
, será retornado o erro -2 (NO_CONNECTION), indicando que a conexão entre

...

o

Inclusão de trecho
Application Server
Application Server
nopaneltrue
 e o
Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
 foi perdida, e nos logs do

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
 será registrado que a causa do fechamento da conexão foi falha de comunicação como

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Master.

...

Antes da build 19.2.1.0 do

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
, a 

interface de monitoramento (

...

Inclusão de trecho
DBMonitor
DBMonitor
nopaneltrue
) 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

...

Inclusão de trecho
DBMonitor
DBMonitor
nopaneltrue
 para cada
Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
 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

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Master não bloqueia novas conexões do

...

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.  

Composition Setup
import.css=/download/attachments/327912/newLayout.css

...

TOTVS | DBAccess - Configuração distribuída

A topologia do TOTVS | 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 TOTVS | DBAccess pode ser configurado para trabalhar em uma configuração distribuída, onde um serviço do TOTVS | 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.

Abrangência
ERP 10 e 11

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Slave.

A partir da Build 19.2.1.0 do

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
, foi implementado o mecanismo de monitoramento centralizado completo no
Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Master, permitindo visualizar todas as conexões estabelecidas em todos os
Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
 Slave(s) do ambiente, bem como rasterar e encerrar conexões. Para maiores informações sobre essa implementação, conslute a nota de release no link Implementação - DBMonitor passa a suportar as funcionalidades de visualização de Locks, Rastrear e Encerrar quando conectado ao DBAccess Master

 

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 TOTVS | DBAccess e os servidores APP1 e APP2 possuam cada um 4 serviços do TOTVS | Application Server, configurados em modo de balanceamento de carga, neste cenário os serviços do TOTVS | Application Server de todos os equipamentos apontam para um único TOTVS | DBAccess, instalando na máquina de banco (SRVDB), onde têm um ODBC configurado para o TOTVS | DBAccess.

 

Image Removed

sf

Procedimento

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

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

 

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

Mode=Master

 

Para configurar os TOTVS | 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 TOTVS | DBAccess Master que será utilizado como servidor de locks para os demais TOTVS | DBAccess Slave.

 

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

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

O TOTVS | DBAccess Master é uma aplicação crítica e deve estar sempre no ar. Se o TOTVS | 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 TOTVS | Application Server, será retornado o erro -2 (NO_CONNECTION), indicando que a conexão entre o TOTVS | Application Server e o TOTVS | DBAccess foi perdida, e nos logs do TOTVS | DBAccess será registrado que a causa do fechamento da conexão foi falha de comunicação como TOTVS | DBAccess Master.

...

Além disso, outro ponto importante,

...

é a respeito das configurações: As configurações devem ser replicadas, de modo que cada

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
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

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
 configurados como Slaves e

...

apontar também para o mesmo banco de dados um

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
configurado como StandAlone (Padrão sem distribuição). Discrepâncias desta natureza, não têm como serem detectadas pelo

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
, e caso sejam realizadas, podem causar comportamentos inesperados e fatalmente prejudiciais a aplicação.

 


Flexibilidade de Configuração

O

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Master não precisa necessariamente ficar junto com a máquina de banco de dados. O

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
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

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Slaves.

...

E, é possível configurar um

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Master em uma plataforma diferente dos demais Slaves, por exemplo um Master em uma máquina Linux e os demais

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Slaves em máquinas Windows. Além disso, podemos também colocar mais de um

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Slave no mesmo equipamento, desde que configurado em outra porta.

Embora seja possível, não é recomendável

...

que sejam utilizados

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Slaves para o mesmo banco de dados/ambiente em plataformas distintas, por exemplo um

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
Slave em Windows e outro em Linux.

...


Build do

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
para uso do recurso distribuído

A utilização do

...

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
em modo distribuído requer uma build com release igual ou superior a 20100510.

...