Biblioteca para identificação do status de servidores em Hot-Standby.

Esta biblioteca pode ser utilizada em aplicações com dois servidores (Hot-Standby) para identificar na tela o estado de cada servidor.


Funcionamento:

O servidor ativo é detectado por um script no evento Constructor do XObject HotStandbyStatus.

Set WshNetwork = CreateObject(“WScript.Network”)
ServidorAtivo = WshNetwork.ComputerName

A lógica para detectar o status do outro servidor baseia-se no sincronismo entre os bancos de dados de cada servidor. Para ativar esse recurso, a propriedade EnableSynchronization deve estar habilitada.

Resumidamente, a biblioteca grava um registro a cada 5 segundos em uma tabela do banco de dados local e faz uma consulta na tabela equivalente do outro servidor para verificar se ela está sincronizada. De acordo com o resultado dessa Consulta, é definido o status do outro servidor:

  • Se ela não retornar nenhum dado, o servidor está em falha (desligado ou fora da rede).
  • Se ela retornar um registro ‘antigo’, o servidor está em manutenção (desabilitado).
  • Se ela retornar um registro atual (considerando um tempo de atraso para a realização do sincronismo), o servidor está rodando (em standby).

NOTA: a biblioteca só funciona com o banco de dados SQL Server (ou SQL Server Express), que deve ter sido previamente instalado e configurado nos dois servidores.

Configuração:

Antes de configurar a biblioteca, insira dois objetos Banco de Dados na aplicação: um para realizar a gravação local (DB1), o outro para permitir a consulta ao servidor reserva (DB2).

Para utilizar a biblioteca, insira o objeto HotStandbyStatus na pasta de dados, e configure as seguintes propriedades deste modo:

  • DBLocal: associe-a ao objeto Banco de Dados local
  • DBStandby: associe-a ao objeto Banco de Dados reserva
  • ServerName1: digite o nome do Servidor 1
  • ServerName2: digite o nome do Servidor 2
  • OldRecordTime: tempo (em segundos) para que o timestamp do registro seja considerado ‘antigo’

Depois, insira na tela o objeto HotStandbyViewer e associe a propriedade Source ao objeto HotStandbyStatus configurado anteriormente.

Observações:

  • O status do servidor reserva pode levar alguns segundos para ser atualizado, pois depende do período de realização da Consulta.
  • A configuração dos objetos Banco de Dados deve ser ajustada (invertida) no servidor secundário. Ou seja, no servidor secundário, o objeto DB1 deve conectar-se ao banco de dados do servidor secundário e o objeto DB2 deve conectar-se ao banco de dados primário.

As figuras abaixo demonstram como configurar os objetos de banco de dados no servidor secundário.

 

No anexo deste artigo estão a biblioteca e uma aplicação exemplo.

Anexo:

ServerStatus

Este artigo foi útil? Was this post helpful?
Yes1
No0

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *