Páginas filhas
  • O Sincronizador de Carga Inicial do EAI Protheus

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Aviso
titleMelhoria ainda não disponível

Esta melhoria só estará disponível a partir de outubro de 2015.

Âncora
_titulo
_titulo
O sincronizador de carga inicial

          O EAI Protheus possui um sincronizador de carga inicial para os cadastros  que podem ser trafegados via EAI. É possível, dentre os adapters cadastrados, escolher qual destes se deseja iniciar a sincronização, enviando todos os registros impactados por aquele adapter via EAI para o outro sistema.

          Este sincronizador é somente para a  sincronização de carga inicial entre uma base Protheus populada e uma outra base. Não há controle se o registro já existe ou não no outro sistema. No cenário ideal do sincronizador os dados existem no Protheus e não existem no outro sistema integrado. Uma vez iniciado o sincronizador ele irá enviar, respeitando as regras do adapter selecionado, todos os registros via EAI para o outro sistema escolhido.

          O sincronizador é um facilitador de implantação para enviar, a partir do Protheus, os registros de um determinado cadastro através do EAI. O sincronizador não é responsável por realizar as gravações de de-para, internalid (quando tratar-se de Mensagem Única TOTVS)ou processar a regra de negócio envolvida nas integrações.

Nota
titleAtenção

Este sincronizador deve ser utilizado somente no momento da implantação das integrações, e nunca durante a operação do sistema.

Âncora
_selecionandoadapter
_selecionandoadapter
Selecionando o adapter para a sincronização inicial

          Para selecionar os adapters para sincronização é necessário que este já esteja cadastrado no grupo no qual a rotina foi iniciada. Para verificar como cadastrar um adapter, verifique o tópico do cadastro de adapter do EAI Protheus.

          Vamos selecionar a opção Sinc. Carga inicial (APCFG020A) no menu do configurador Protheus:

Opção do menu do sigacfg, onde é possível verificar o sincronizador EAI.

Opção do menu do sigacfg, onde é possível verificar o sincronizador EAI


          Selecionando a opção do sincronizador é apresentado o browse com todos os adapters já cadastrados no Protheus

Tela do sincronizador EAI

          Tela do sincronizador EAI


          O sincronizador compartilha os dados com os outros grupos de empresa do Protheus, e respeita as configurações do adapter EAI. Desta maneira, para iniciar o sincronizador para um outro grupo é necessário acessar o módulo configurador deste grupo. A rotina de sincronização não pode ser acessada por mais de um usuário ao mesmo tempo.

          Podemos selecionar então os adpaters os quais iremos realizar a sincronização. Basta selecionar um adapter e clicar em Sincronização inicial. O sincronizador irá tentar identificar o alias principal relacionado à aquele adapter. Para isto ele busca se existe modelo de dados Protheus (modeldef) dentro do adapter e em caso positivo, assume como alias principal a tabela master deste modelo. Caso não exista modelo de dados e somente para as Mensagens Única TOTVS o sincronizador irá buscar o conteúdo do campo Alias(XX4_ALIASP) do cadastro do referido adapter. Caso exista valor neste campo, este será assumido como alias a ser utilizado. Caso as duas alternativas acima não sejam capazes de identificar o alias da tabela o sincronizador buscará as informações do campo SYS_OBJ do SX2 e verificará através das tabelas relacionadas ao adapter o alias principal. Caso isto não seja possível, uma mensagem adverte o usuário que aquele adapter não está pronto para sincronização:

Mensagem indicando ao usuário que o adapter não está preparado para a sincronização

Mensagem indicando ao usuário que o adapter não está preparado para a sincronização

          Para um adapter de Mensagem Única TOTVS existe a opção para o usuário de preencher o campo Alias, do cadastro de adapter. Este campo é responsável por enviar uma série de informações para o outro sistema. Para entender o conceito deste campo, verifique o tópico do cadastro de adapter do EAI. Se nenhuma das opções acima puder ser verificada a equipe responsável pelo adapter deverá ser acionada.

          Caso o adpater esteja em condições de sincronização o sistema calcula e apresenta um range de threads disponíveis para realizar o processamento (no mínimo 1 e no máximo 9 threads). Um número maior de threads torna o processo mais rápido, pois são realizados envios de mensagens de forma paralela. Porém isto consome mais recursos do sistema e pode até mesmo sobrecarregar o sistema que irá receber as mensagens.

Nota
titleAtenção

Outro ponto a se considerar é que, em um processo multi-thread, em um erro onde o servidor pare de responder (queda de energia, erro em alguma rotina relacionada) o sistema pode posteriormente não conseguir iniciar o processamento no ponto exato de parada, podendo iniciar alguns registros antes ou depois, pois o processo ocorreu em paralelo.

           Já o processo com uma única thread tende a ser mais demorado porém em caso de erro fatal o processo recomeçará do ponto exato onde foi interrompido. Estes pontos devem ser levados em consideração no momento de escolher o número de threads a utilizar.

Tela para a escolha de threads de execução

Tela de escolha de threads de execução

        O sistema calcula o número máximo de threads de acordo com a quantidade de registros existentes para envio. Após selecionar a quantidade de threads e clicar em Finalizar a mensagem é apresentada, e os registros começam a ser enviados.

Mensagem que indica que o processo de sincronização começou

Mensagem que indica que o processo de sincronização começou

          Enquanto a sincronização deste adapter não terminar com sucesso ou não for bloqueada não é possível iniciar uma sincronização do mesmo adapter.

Mensagem indicando que já existe sincronização em execução para o adapter em questão

Mensagem indicando que já existe sincronização para o adapter

        A partir deste momento para cada linha do alias associado ao adapter a integração será chamada.

Âncora
_teladelogs
_teladelogs
A tela dos Logs de Sincronização

          Existe uma interface própria para acompanhamento dos eventos enviados para sincronização. Esta tela permite através de gráficos e outras formas de visualização controlar o progresso da sincronização. Para acessar esta rotina, na tela de sincronização do EAI selecione em ações relacionadas/log de sincronização.

 

Tela de logs de sincronizaçãoImage Added

Mensagem indicando que já existe sincronização para o adapter

          Vamos explicar cada componente desta tela e o seu comportamento.

Âncora
_logsuperior
_logsuperior
Interface superior da tela

          A interface superior da tela de logs de sincronização controla o tempo de atualização da tela e é responsável pela maioria dos comandos que podem ser executados aqui.

Parte superior da tela de logs de sincronizaçãoImage Added

Parte superior da tela de logs de sincronização

          São recursos desta interface:

  • Atualizar a cada - A partir deste combo é possível selecionar o intervalo de atualização da tela. A tela de Logs de sincronização é atualizada automaticamente, respeitando o intervalo definido pelo usuário através do combo atualizar a cada. A tela é automaticamente atualizada, mas de maneira assíncrona. É enviado um sinal para que sejam recalculados todos os valores e as tabelas são atualizadas, e a tela é atualizada com base nos valores já existentes. Estes valores são recalculados por outra thread, que atualiza a tabela de sincronização. Na próxima atualização de tela, estes valores são lidos e um novo pulso é enviado para iniciar o recálculo;
  • Texto com informaões - Este texto (no nosso exemplo "Não há dados sendo sincronizados no momento" indica o status geral do sincronizador EAI. Ele é responsável por indicar se os registros estão sendo processados, se não existe mais processamento ou se o sincronizador está em tentativa de parar (em processos de multiplas threads a parada do sincronizador pode demorar, pois é necessário parar todas as Threads antes);
  • Botão Iniciar - Caso o sincronizador esteja parado, é possível reiniciar o sincronizador;
  • Botão Parar - Responsável por parar o sincronizador (em processos de multiplas threads a parada do sincronizador pode demorar, pois é necessário parar todas as Threads antes);
  • Botão reprocessar - Envia um sinal para que ocorra o reprocessamento de sincronização com erro (erro causado no sistema) ou por retorno negativo de outro EAI (possível somente após o término do processo). O Sincronizador não irá chamar o adapter novamente. Ele irá carregar as mensagens já enviadas e irá realizar o reenvio das mesmas e o adapter será chamado no retorno das mensagens enviadas.;
  • Botão Bloquear/Excluir - Botão responsável por bloquear um processo de sincronização. Processos bloqueados não podem ser reinicializados. Caso um registro já esteja bloqueado é possível excluir este registro. Assim sendo, só é possível excluir um registro que já esteja bloqueado. Para bloquear registros que estejam com o status de executando é necessário parar o sincronizador.

Âncora
_gridfila
_gridfila
Grid dos processos em fila

          Neste grid é possível visualizar todos os adapters selecionados para sincronização e o seu status de processamento.

Grid dos processos na filaImage Added

Grid dos processos na fila

          Nesta grid são apresentadas as sincronizações que estão na fila para envio. Cada adapter é concatenado com um identificador (seu Recno na tabela de sincronização) para que seja possível quando existirem mais de um adapter na fila a sua identificação. Com um duplo clique na coluna de informações é possível expandir esta informação (na parada do sincronizador por erro fatal em alguma aplicação, parte do error.log é gerado aqui e é possível visualizá-lo com o duplo clique). Cada registro possui também o seu status:

Status de sincronizaçãoImage Added

Status de sincronização

          São status de sincronização:

  • Erro - Ocorreu um erro (error.log, etc) em alguma rotina relacionada (adapter, próprio sincronizador, etc) que inviabiliza o envio das mensagens. O sincronizador é parado, e nenhum outro adapter escolhido para sincronização será integrado até a verificação deste erro. Desta maneira, enquanto existir um adapter com status de erro na sincronização nenhuma outra sincronização será realizada. Para este adapter existirão duas alternativas:
    • Reiniciar o processamento do adapter (ele irá tentar recomeçar do ponto onde houve o erro);
    • Bloquear o processamento daquele adapter (ele não poderá mais ser reprocessado).
  • Executando - O processo já iniciou, e já existem mensagens enviadas;
  • Aguardando execução - O processo ainda não iniciou, e nenhuma mensagem foi enviada;
  • Finalizado com sucesso. Todos os registros passíveis de envio foram enviados e todos obtiveram retorno positivo do outro EAI;
  • Processo bloqueado - O processo foi bloqueado pelo usuário, não sendo mais processado;
  • Processo finalizado com mensagens não processadas - Todos os registros passíveis de envio foram enviados, mas alguns obtiveram retorno negativo do outro EAI;
  • Reprocessamento - Esta mensagem foi sinalizada para reprocessamento;
  • Reprocessamento com erros - Este registro foi reprocessado, mas houve retorno negativo do outro EAI para uma ou mais mensagens.

Âncora
_processadosadp
_processadosadp
Gráfico de processados por adapter

          Este gráfico de barras mostra a quantidade de registros enviados e a quantidade que resta para envio deste adapter (este gráfico é referente ao primeiro envio das mensagens, desta forma para mensagens reprocessadas ele não é alterado). 

 

Status do documentoEm construção
Data19/05/2015
Versão1.0
Versão anterior1.0
Autores

Jandir Deodato De Souza Silva

Índice resumido
Índice
maxLevel1
indent10px
Índice
Índice
outlinetrue
indent10px