Tabela de conteúdos

Especificação funcional: Sincronização de dados

Syncdatasystem

Essa ferramenta foi desenvolvida para sincronizar tabelas de dados entre bases de dados de estrutura semelhante a fim de evitar retrabalho de população de dados por parte do usuário. Um exemplo claro para a utilização dessa ferramenta seria a sincronização de dois sistemas iguais que funcionam para em um mesmo cliente, ex: a empresa utiliza dois sistemas (Facture-e), um para a matriz e outro para filial, porém os destinatários cadastrados são os mesmos para as duas empresas.

Com a configuração da sincronização entre o sistema da matriz e o da filial, o usuário só precisará cadastrar o destinatário uma vez no sistema pois ele será replicado para a outra base de dados no mesmo instante.

A ferramenta sincroniza n base de dados, ou seja eu posso configurar quantas bases de mesma estrutura quanto eu desejar. Outra característica é que o fluxo de dados é cíclico e percorre todas as bases sincronizadas.

Descrição

A ferramenta depende do funcionamento do serviço do SymMetricDS, que é o serviço que replicará os registros das bases de dados de acordo com a configuração feita. Por isso uma pasta contendo os binários desse serviço acompanha a instalação da ferramenta.

O Syncdatasystem prepara as bases de dados com tabelas específicas do serviço SymMetricDS, configura todo ambiente necessário para a sincronização e inicia o serviço no windows. O Syncdatasystem configura a sincronização entre bases de dados de quaisquer sistema, porém para que o funcionamento da sincronização seja eficaz um arquivo de configuração, com os sistemas e seus dados a serem sincronizados, foi adicionado ao projeto para que apenas sistemas e tabelas ali representados pudessem ser sincronizados. Com isso a sincronização entre as bases não é full entre todas as tabelas.

Estrutura do arquivo SistemasConfig.xml

Observação: A tag <tab> possui um atributo chave e um valor. O valor informa o nome da tabela e a chave informa o nome da chave primária incremental. Caso a tabela não possua chave primária incremental informar NULL para o valor do atributo. É fundamental informar o atributo na tag <Tab> pois o merge entre as bases de dados se dará com base no nome da tabela e na chave primária incremental. Chaves primárias oriundas de outras tabelas não sofrerão alterações no momento do merge, por isso o valor NULL para esse tipo de chave.

Os dados desse arquivo *.xml servem basicamente para a configuração das triggers que são disparadas de acordo com a ação na tabela configurada, e como os dados são opcionais esse arquivo é de suma importância para o funcionamento da ferramenta.

AdjustsTriggers

Cada sistema poderá possuir uma particularidade com relação as triggers geradas pelo serviço do SymMetricDs, por exemplo: Caso uma trigger deva estar inativa no momento do merge de dados, um script de ajuste poderá marcar a trigger como inativa antes do merge. Para que isso aconteça um script com nome “AdjustsTriggers <Nome Opção selecionada>.sql” deverá ser criado dentro da pasta do sistema localizada na pasta conf do SymMetricDs.

Triggers

O espelhamento do dado é disparado no momento em que uma trigger (responsável pelo espelhamento de dados de uma tabela com outra) é acionada. Uma trigger poderá ser acionado em um insert ou um update. Ela será chamada após uma dessas condições informadas.

Delay

Quando o serviço do SymMetricDS é executado na máquina ele precisa de um tempo de processamento para que a sincronização seja ativada, por isso foi criado um delay dentro do Syncdatasystem para que esse tempo de sincronização seja sempre respeitado. Esse delay é ativado sempre que a ferramenta habilita o serviço SymMetricDS ou quando a ferramenta termina de sincronizar as rotas de triggers e desabilita o serviço em seguida.

Scripts de configuração

Tabelas do SymMetricDs

O serviço SymMetricDs adiciona à base de dados 42 tabelas de dados. As mais utilizadas serão citadas abaixo contendo informações sobre sua função dentro do serviço:

Requisitos

Pontos de verificação

Limitações da ferramenta

Padrão do caminho da base de dados em rede: hostName:caminhoDataBase.FDB (ex: Desenvolv8:C:\BandoDados.fdb).

Padrão do caminho da base de dados em rede com Alias configurado: hostName:NomeAlias (ex: 192.168.0.18:NomeAlias).

Antes de rodar a sincronização verifique se a conexão com as bases de dados, em rede, é funcional. Utilize o IBExpert ou qualquer IDE que conecte a uma base firebird para executar o teste.

Password do certificado de segurança da aplicação

Password: d3e5v4t2e1c4s2y9s