Elipse Knowledgebase Utilizando bancos de dados com Hot-Standby. • 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. Isto significa que é possÃ-vel haver 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. Quando este servidor está em espera, dizemos que está em Standby. 2) Entendendo o Hot-Standby A troca de servidores em Hot-Standby pode ser manual (através do E3 Server) ou automática. A troca automática ocorre quando o servidor em espera detecta, através de testes de comunicação com este servidor, que o servidor principal não está mais rodando. É possÃ-vel também configurar a troca automática para que ela ocorra quando houver 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: Ativo - É o servidor que está rodando o aplicativo. Apenas um servidor pode estar ativo em um domÃ-nio em determinado momento. Standby - O servidor em standby fica em espera, com o aplicativo carregado, mas não em execução. Ele monitora o servidor ativo ,e entra em ação assim que não receber mais respostas deste. Inativo - Um servidor inativo está declarado no DomÃ-nio, mas não está selecionado nem como principal nem como standby. Ele monitora todas as mudanças no arquivo de domÃ-nio, podendo ser ativado a qualquer momento. Em manutenção - O servidor em manutenção não toma parte em nenhum evento no domÃ-nio. Este estado serve para indicar que um servidor está sendo configurado e não está pronto para entrar em ação. 3) Trabalhando com bancos de dados O Hot-Standby garante a continuidade da aplicação, mas quando utilizamos bancos de dados, também torna-se necessário garantir a continuidade do acesso à base de dados. Este problema pode ser resolvido de duas maneiras. Na primeira delas, ambas as aplicações acessam uma mesma base de dados. O acesso ao BD é habilitado na aplicação através da configuração do objeto DBServer em ambos os 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 nos dois 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 deles acessando um servidor de banco de dados próprio Neste caso, é preciso 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 quase que imediatamente, no mÃ-nimo de tempo possÃ-vel. 1/2 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 localmente em disco, para posterior envio (quando a comunicação entre os dois computadores for restabelecida). Isto assegura a igualdade entre as tabelas geradas pela aplicação. 4) Conclusão O objetivo da ferramenta Hot-Standby é manter a continuidade da aplicação, com um mÃ-nimo de perdas por paradas no processo. O escopo da ferramenta, no entanto, é garantir a execução da aplicação, e quaisquer outros controles devem ser feitos pelo programador. http://kb.elipse.com.br/en-us/questions/43/ 2/2