Á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 Modified

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 o

...

  1. 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=
Slave
MasterServer
SlaveMasterServer=<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

...

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

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.

...