Versões comparadas
Chave
- Esta linha foi adicionada.
- Esta linha foi removida.
- A formatação mudou.
Aviso | ||
---|---|---|
| ||
Esta melhoria só estará disponível a partir de outubro de 2015da lib label 08062015. |
Âncora | ||||
---|---|---|---|---|
|
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 | ||
---|---|---|
| ||
Este sincronizador deve ser utilizado somente no momento da implantação das integrações, e nunca durante a operação do sistema. |
Âncora | ||||
---|---|---|---|---|
|
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 (APCFG020A) no menu do configurador Protheus:
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
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
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 | ||
---|---|---|
| ||
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 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
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 para o adapter
A partir deste momento para cada linha do alias associado ao adapter a integração será chamada.
Âncora | ||||
---|---|---|---|---|
|
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.
A tela de logs de sincronização
Vamos explicar cada componente desta tela e o seu comportamento.
Âncora | ||||
---|---|---|---|---|
|
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çã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). Para um reprocessamento com mensagens de retorno negativo de outro EAI 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.
Nota | ||
---|---|---|
| ||
Visando uma economia de recursos toda vez que um processo é reiniciado (reprocessado, iniciado novamente após uma falha, etc) o número de threads máximas a utilizar é reavaliado, partindo do valor escolhido do usuário. Este valor pode ser reduzido, chegando até o valor de 1 thread. |
Âncora | ||||
---|---|---|---|---|
|
Na interface de logs existem dois browses, um contendo os processos a enviar e outro com as mensagens que retornaram com status de erro do outro EAI.
Âncora | ||||
---|---|---|---|---|
|
Neste grid é possível visualizar todos os adapters selecionados para sincronização e o seu status de processamento.
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çã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 | ||||
---|---|---|---|---|
|
Neste grid são apresentadas todas as mensagens com erro no EAI. É possível visualizar o xml enviado (primeira lupa) ou o xml recebido (segunda lupa).
Grid de mensagens com erro no EAI
Âncora | ||||
---|---|---|---|---|
|
Os gráficos da tela de Logs de sincronização são utilizados para auxiliar o usuário no acompanhamento da quantidade de registros enviados e a enviar. Todos os gráficos são atualizados de maneira assíncrona, como já informado.
Âncora | ||||
---|---|---|---|---|
|
Este gráfico de barras mostra a quantidade de registros enviados e a quantidade que resta para envio do adapter selecionado no grid de processos em fila (este gráfico é referente ao primeiro envio das mensagens, desta forma para mensagens reprocessadas ele não é alterado).
Gráfico de processados por adapter
Este gráfico sempre reflete os dados do registro do grid dos processos em fila. Uma coluna mostra a quantidade de registros enviados e outra coluna a quantidade que faltam a enviar. Em processos multi-threads onde o sincronizador seja parado por algum erro crítico o valor a enviar pode ser maior que a quantidade de registros da tabela, pois o sincronizador pode recomeçar o processo um pouco antes do erro. Este gráfico é referente ao primeiro envio das mensagens, desta forma para mensagens reprocessadas ele não é alterado.
Âncora | ||||
---|---|---|---|---|
|
Este gráfico apresenta a quantidade de envios com retorno positivo e a quantidade de registros que retornaram com erro do outro EAI.
Gráfico de sucessos x erros
Este gráfico mostra os dados do adapter selecionado no grid de processos em fila.
Âncora | ||||
---|---|---|---|---|
|
Este gráfico mostra a porcentagem de envio de todos os adapters sincronizados/a sincronizar.Este gráfico é referente ao primeiro envio das mensagens, desta forma para mensagens reprocessadas ele não é alterado.
Gráfico de porcentagem de processamento total
Âncora | ||||
---|---|---|---|---|
|
É possível identificar os recnos enviados e outras informações internas do sistema habilitando a chave EAISINCLOG=1 no arquivo appserver.ini, na seção do ambiente em uso. Esta chave é muito útil para saber quais recnos estão sendo enviados e identificar outras informações, sendo uma alternativa útil para o degub do sistema.
Com esta chave habilitada uma série de informações são geradas no console do Protheus, permitindo identificar em qual passo interno o sincronizador encontra-se, qual o recno da tabela está sendo enviada e informações sobre o início e finalização do processo.
Exemplo de geração no console
Status do documento | Concluído |
---|---|
Data | 19/05/2015 |
Versão | 1.0 |
Versão anterior | 1.0 |
Autores |
Índice resumido | ||||||
|
Índice | ||||||
|