1) Introdução
O Hot-Standby é uma ferramenta do Elipse E3 que permite a implementação do conceito de fail-over em um sistema supervisório. Esse conceito consiste na possibilidade de se ter dois servidores funcionando simultaneamente: o servidor principal e o servidor reserva, este último como contingência do primeiro. Caso o servidor principal falhe, o servidor reserva entra em ação imediatamente. Este servidor em espera, dizemos que está em Standby.
2) Entendendo o Hot-Standby
A troca de servidores em Hot-Standby pode ser manual (através de uma opção no E3 Server) ou automática. A troca automática ocorre quando o servidor em espera detecta que o servidor principal não está mais rodando, através de testes de comunicação com este servidor. É possível também configurar a troca automática para que ocorra quando há uma falha em um canal de E/S ou em qualquer outra falha local detectada pelo aplicativo.
Para implementar o Hot-Standby, o E3 permite que seus servidores sejam configurados em diferentes estados:
3) Trabalhando com banco de dados
O Hot-Standby garante a continuidade da aplicação, mas quando utilizamos bancos de dados, também temos que garantir a continuidade do acesso à base de dados. Podemos resolver este problema de duas maneiras.
Na primeira, ambas aplicações acessam uma mesma base de dados. Habilitamos o acesso ao BD na aplicação configurando o objeto DBServer em ambos servidores (principal e standby) com os mesmos parâmetros de localização do BD na rede.
Figura 1: Domínio com Hot-Standby acessando o mesmo servidor de banco de dados
Note que, para garantir a continuidade do sistema, é importante que a base de dados esteja em uma máquina separada, acessível aos dois servidores. Nesse caso, o controle da continuidade da base de dados é feito fora do E3.
Na segunda maneira, a gravação de dados é feita em bases diferentes. As bases podem estar em servidores distintos, mas o ideal é que os dois bancos de dados estejam rodando localmente em ambos servidores, principal e standby, por motivos de rapidez e segurança. Assim, garantimos que o acesso ao BD estará sempre disponível, pois a máquina que está rodando a aplicação também roda o banco de dados.
Figura 2: Domínio principal e Domínio standby cada um acessando um servidor de banco de dados próprio
Neste caso, temos que garantir o sincronismo entre as diferentes bases da aplicação principal e da secundária. O E3 suporta esta opção através da propriedade EnableSynchronization do objeto DBServer. Quando ela está ativa, todos os dados gravados na base principal são atualizados na base em standby imediatamente, no mínimo de tempo possível.
Um detalhe importante é que, se a aplicação principal não conseguir enviar os dados para o servidor em standby, esses dados ficarão armazenados em disco localmente para posterior envio (quando a comunicação entre os dois computadores for reestabelecida). Isso assegura a igualdade entre as tabelas geradas pela aplicação.
4) Conclusão
O objetivo da ferramenta de Hot-Standby é manter a continuidade da aplicação, com um mínimo de perdas por paradas do processo. O escopo da ferramenta, porém, é garantir a execução da aplicação, quaisquer outros controles devem ser feitos pelo programador. Neste artigo, pudemos ver duas técnicas para garantir a continuidade do acesso às bases de dados da aplicação.