O que acontece quando a comunicação entre o Domínio Cliente e o Domínio Servidor cai?
Quando uma situação de erro ocorrer, todos as associações da aplicação-cliente referenciando o Domínio ficarão desconectados (displays, por exemplo, passarão a mostrar o símbolo ??? para os valores), assim como todos os comandos Application.GetObject referenciando o Domínio Remoto irão falhar (ou seja, causarão erros de script). Quando o problema for resolvido, as associações deverão reconectar-se automaticamente. Já os comandos Application.GetObject deverão ser executados novamente.
Um Domínio Cliente pode visualizar alarmes de outros Domínios Remotos?
Sim, a partir da versão 3.1.
Um Domínio Cliente pode abrir telas de outros Domínios Remotos?
Não.
Um Domínio Cliente pode utilizar usuários de outros Domínios Remotos?
Não.
É possível conectar um Domínio a vários outros Domínios?
Sim, como vemos na figura abaixo:
É possível conectar um Domínio a um Domínio em Hot-Standby?
Sim. Considere a seguinte arquitetura:
Através dos Domínios Remotos essa arquitetura é possível. Teremos um “Domínio de Comunicação”, em Hot-Standby, comunicando com os dispositivos. Esses dados seriam lidos por um outro Domínio, também em Hot-Standby, que seriam o servidor para os micros clientes (Viewers).
É possível que um E3 Server seja configurado como Domínio Remoto Servidor e Cliente ao mesmo tempo?
Não. Isto pode causar o surgimento de links circulares, ou seja: A -> B -> C -> A, onde o Domínio A tem como Cliente B, Domínio B tem como Cliente C, e Domínio C tem como Cliente A.
Mesmo que os links não sejam circulares, escritas de links (ou outras operações síncronas) podem causar travamentos (deadlocks) entre os E3Servers. Para contornar esta situação, sugerimos que o aplicativo seja modificado para que um Domínio funcione apenas como cliente ou como servidor, mas nunca os dois.
É possível configurar Domínios Remotos em máquinas que não pertencem a um domínio de rede Microsoft?
Depende. O arquivo de domínio é sempre aberto pelo E3Server, que a partir do E3 v3.0 roda exclusivamente na conta SYSTEM. É necessário então abrir o compartilhamento para o usuário SYSTEM, que chegará na outra máquina com a mensagem “Null Session”. Esse Null Session pode ser configurado para ser aceito como um usuário anônimo. Portanto, basta abrir o compartilhamento para o usuário anônimo conforme artigos Configurando Domínios Remotos em máquinas que não pertencem a um domínio de rede Microsoft e Configurando Domínios Remotos em máquinas que não pertencem a um domínio de rede Microsoft (Windows XP/Windows XP).
Porém, há uma incompatibilidade identificada no sistema operacional Windows 7 ou superior; para contornar esta questão, recomendamos que os arquivos da aplicação remota sejam copiados e colados na mesma pasta do computador local. Nas configurações de Domínio Remoto, configure o campo Arquivo de Domínio para que ele aponte para o domínio copiado (que está na mesma máquina do E3Studio); já o campo Servidor principal deve ser configurado com o nome do computador remoto. Deste modo, será possível utilizar o AppBrowser para criar todos os links via E3Studio, e quando a aplicação for executada, estes valores serão buscados na máquina remota.
O protocolo DCOM do Windows é utilizado pelo Elipse E3 para a comunicação entre Domínios Remotos e Viewer?
Não, nestas interações o protocolo utilizado é o REC (proprietário da Elipse).
O que é REC? Como posso visualizar o tráfego de dados no log do E3?
O REC é um protocolo desenvolvido pela Elipse Software para comunicação entre os diversos módulos do Elipse E3.
Os pacotes do REC não têm tamanho fixo. A quantidade de dados que passa pelo protocolo pode ser vista nos mesmos logs do E3 e será indicada pela quantidade de dados, em kB, enviados e recebidos.
Quais as configurações necessárias para o funcionamento do REC?
- O servidor E3 deve estar rodando na máquina de destino.
- Os firewalls da máquina de destino e da máquina local devem permitir conexões TCP na porta 6515.
- Os parâmetros da conexão (timeout, ping, heartbeat) devem ser compatíveis com a velocidade/confiabilidade/latência da rede entre a máquina local e a máquina de destino.
O que é heartbeat? Onde ele é configurado? Qual seu impacto no sistema?
O heartbeat é um mecanismo pelo qual o domínio cliente envia mensagens periodicamente para verificar se o domínio servidor está com sua conexão ativa, aguardando uma resposta.
Para configurar o tempo de heartbeat, é preciso primeiramente que o Domínio esteja carregado. Depois disso, acesse o menu de contexto do E3Admin–Domínio–Opções–Domínios Remotos, selecione o servidor desejado, clique no botão Avançado e configure o campo Período de heartbeat (ms).
Quando o dobro deste período tiver sido atingido sem que o Cliente tenha recebido nenhuma mensagem do Servidor, o sistema interpreta que o servidor falhou ou está fora de rede, e uma desconexão imediata será forçada. Caso o PING e o hearbeat sejam desligados simultaneamente, a detecção de queda de conexão do domínio remoto ficará extremamente lenta (quando houver falha no servidor). Nesses casos, é possível que 40 segundos ou mais se passem sem que o domínio cliente indique a perda de conexão. Recomendamos que ambos os domínios permaneçam ligados sempre que possível.
O que devo fazer caso muitos erros de PING estejam ocorrendo na rede?
Caso isto aconteça, verifique a qualidade/performance da rede e siga os procedimentos do artigo Configurações de rede do E3 para redes com alta latência, banda reduzida e/ou perda de pacotes.
Entretanto, relembramos a parametrização padrão dos domínios remotos (e protocolo REC em geral) não é adequada para WAN, apenas para LANs.
O que são chamadas síncronas e chamadas assíncronas? Qual a melhor alternativa em relação a performance?
Na comunicação síncrona, o emissor e o receptor devem ambos permanecer em sincronia, e uma solicitação só será atendida após o resultado de uma escrita ou requisição. Na comunicação assíncrona, por outro lado, o envio de dados é intermitente e não depende do resultado de nenhuma requisição para iniciar a próxima solicitação.
Quando uma chamada síncrona é gerada, o processo aguarda indefinidamente pelo retorno desta chamada; já quando uma chamada assíncrona é gerada, nenhum tipo de retorno é esperado.
Por exemplo: considere uma arquitetura de Domínios Remotos onde existe um Centro de Operação que se conecta a diversos Domínios Remotos; se um dos domínios estiver travado e uma chamada síncrona for disparada para este domínio, todo o Centro de Operação irá travar.
Para evitar esta situação, configure a opção Tempo limite de chamada (ms), disponível no Elipse E3 a partir da versão 4.6, de modo individual para cada conexão de Domínios Remotos. Se uma chamada síncrona demorar mais tempo que este valor de timeout, o canal será fechado, o que “destrava” o processo que originou a chamada.
Quem demanda maior poder de processamento o Domínios Remotos Client ou Server?