Comentários sobre: Como implementar Failover e Load Balance no DataSnap 2010 http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/ Andreano Lanusse blog - artigos, tutoriais e vídeos sobre tecnologia, desenvolvimento de software (Delphi XE4, C#, PHP, .NET) e técnicas de programação Thu, 05 Oct 2017 00:48:39 +0000 hourly 1 https://wordpress.org/?v=6.5.7 Por: Kleber Assis http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-51164 Thu, 05 Oct 2017 00:48:39 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-51164 Em resposta a Vinicius.

Olá, pessoal.

Adriano, quero te agradecer por vc ter compartilhado esse seu conhecimento que foi muito bom para uma grande resolução de problemas que temos. Muito boa a sua iniciativa.

Bom, vou compartilhar um pouco do que entendi com o exemplo do Adriano.

Pessoal, pelo que entendi, cada conexão que é bem sucedida, é gerado uma espécie de índice, ou seja um contador. Então no momento que é gerado o erro, ele verifica o contador ou seja, e pula para a segunda ou primeira tentativa, como vc preferiria , armazenando o contador para uma próxima conexão. Então eu pensei, pq não verificar em qual índice se encontra a seção e toma uma decisão. Pq por exemplo, se já estiver em sua última opção de conexão, vc pode voltar para a primeira conexão já que foi identificado que é a última opção..

Bom pessoal, tenho o conhecimento ainda bem limitado quando o assunto é DatSnap, mas aqui em meu projeto, está funcionando perfeitamente.

Obrigado mais uma vez, Adriano Lanusse.

]]>
Por: Lucas Steffen http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-49367 Fri, 10 Mar 2017 16:09:20 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-49367 Alguém teria um descrição melhor do que exatamente faz a função LogBytes e porque só é chamada quando for o servidor original (userFlag = 1)?

]]>
Por: Vinicius http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-42779 Thu, 23 Apr 2015 18:10:59 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-42779 Andreanno,

Neste exemplo parece que se a porta 211 cair, direciona para a 213 sempre, no caso de se ter N servidores como seria?
Exemplo se o 211 e o 213 cair e eu quisesse direcionar para um terceiro ou um quarto?

]]>
Por: Andreano Lanusse http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-39744 Thu, 25 Sep 2014 21:01:59 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-39744 Em resposta a Nilson Chagas.

Nilson,

Não testei em XE6, se você quiser testar fique a vontade 🙂

Não seria recomendado o Failover ficar na mesma máquina da aplicação

]]>
Por: Nilson Chagas http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-39737 Thu, 25 Sep 2014 10:56:41 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-39737 Andreano,

Este exemplo seu ainda é válido para o XE6?

Pensei numa bobeira, poderia o servidor de Failover ficar na própria maquina da aplicação?

[]s

]]>
Por: Fred http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-39512 Sat, 06 Sep 2014 15:48:38 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-39512 Como usar o exemplo no XE6? Não estou conseguindo. Podem me ajudar?

]]>
Por: Tadeu http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-30404 Tue, 02 Apr 2013 22:25:49 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-30404 Em resposta a Andreano Lanusse.

Andreano, peguei seu exemplo e testei no XE2, funcionou exatamente como voce postou, obrigado pela dica. O unico problem que eu encontrei é que se eu chamar o metodo via browse:
http://localhost:8080/datasnap/rest/TServerMethods1/EchoString/testando
ele direciona sempre para a porta 211, se eu parar o servidor da 211 e executar novamente pelo browse, da a seguinte mensagem:
{“error”:”Socket Error # 10061\r\nConnection refused.”}
,ou seja, da a impressao que o Failover neste caso sempre joga para o 212. Estou criando uma aplicação totalmente web e estou com esse problema. Voce tem alguma dica sobre isso? Obrigado

]]>
Por: Andreano Lanusse http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-26161 Wed, 06 Feb 2013 01:49:04 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-26161 Em resposta a Luiz Fernado Campos Bhering.

@Luiz, a implementação foi feita como exemplo para mudar de 211 para 213 apenas.

A idéia é que vocês peguem o código agora e façam as implementações necessárias para o seu ambiente.

]]>
Por: Luiz Fernado Campos Bhering http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-24772 Wed, 23 Jan 2013 16:47:13 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-24772 Andreano, boa tarde !

Primeiramente, parabéns pelo artigo.. Me ajudou muito..
Mas uma dúvida ainda continua, ao voltar o servidor da porta 211 e desativar o servidor 213 o programa não fez a alteração 213 -> 211 somente 211-213.. O que pode estar ocorrendo.

Desde já agradeço.

Abraços!

]]>
Por: Luiz Fernado Campos Bhering http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-24771 Wed, 23 Jan 2013 16:22:18 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-24771 Andreano, boa tarde !

O exemplo funcionou corretamente mas não consigo voltar a utilizar o servidor 211. Ou seja, Ativei os dois (211 2 213) depois desativei o 211 e redirecionou para o 213 corretamente.

Depois reativei o 211 e desativei o 213 ai o redirecionamento não volta mais. Você poderia me dá uma dica sobre isso ?

Obrigado !

]]>
Por: Andreano Lanusse http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-14804 Fri, 23 Nov 2012 08:50:02 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-14804 Em resposta a Glayson Junio.

@Glayson para fazer failover a conexão tem que ser HTTP no DataSnap, neste exemplo uso TCP do DataSnap Server para o banco de dados

]]>
Por: Glayson Junio http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-13696 Mon, 12 Nov 2012 17:47:18 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-13696 Gostaria de saber se você tem algum exemplo de failover para TCP-IP?

]]>
Por: Rodrigo Rodrigues http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-1618 Fri, 05 Nov 2010 12:33:57 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-1618 Olá Andreado, no DataSnap existe uma forma de conectarmos a um servidor datasnap através de roteador? ou seja, sem especificar o IP da conexão?

alguma coisa que capturassemos as informações de conexão com o Host.

Muito parecido como esse programas de acesso remoto faz, como o teamviewer, logmein, EchoVNC etc.

]]>
Por: Diego http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-1304 Tue, 21 Sep 2010 14:39:37 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-1304 Andreano, consegui fazer funcionar, estava faltando a declaração de uma unit. Agora uma dúvida, o servidor Failover fica em cada maquina cliente, ou na mesma maquina servidor datasnap ?

]]>
Por: Diego http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-1301 Tue, 21 Sep 2010 11:53:12 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-1301 o SQLConnection esta da seguinte forma:

;DelegateConnection=DBXTraceConnection
drivername=DataSnap
HostName=pc140
Port=8080
CommunicationProtocol=http

OBS: qdo da um active pelo compomente, ele conecta normal, em tempo de projeto, porem em tempo de execução ele apresenta o erro postado anterior.

]]>
Por: Andreano Lanusse http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-1299 Tue, 21 Sep 2010 07:19:01 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-1299 Em resposta a Diego.

Oi Diego,

A comunicação do cliente tem que usar HTTP, verifica no seu SQLConnection se assim está.

]]>
Por: Diego http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-1295 Mon, 20 Sep 2010 21:00:48 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-1295 Ola Andreano.
Estou começando a implementar o Failover em minha aplicação. Porém, estou me dando o seguinte erro : “Protocol http can be used after an adequate instance of TDBXCommunicationLayer is registered with TDBXCommunicationLayerFactory.” quando estou dando um connect := true.
Eu apenas arrastei a conexao do DataExplorer. Falta mais alguma coisa ???
Obrigado.

]]>
Por: Andreano Lanusse http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-1080 Thu, 29 Jul 2010 07:40:28 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-1080 Em resposta a Marcelo.

Marcelo,

O controle de como fazer o balanceamento depende da sua implementação, no exemplo que mostrei eu redireciono a conexão quando um erro acontece na comunicação.

O mesmo irá se aplicar a balanceamento de carga, você descobrindo o nível de utilização de cada servidor irá decidir para onde enviar a conexão. O nível de utilização pode ser baseado nos critérios que você mencionou, mas geralmente se utiliza CPU e memória.

]]>
Por: Andreano Lanusse http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-1079 Thu, 29 Jul 2010 07:36:39 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-1079 Em resposta a Larissa Franco.

Oi Larissa,

Obrigado por acessar o meu blog.

O vídeo está no post, por alguma razão ele sumiu mas agora está de volta. Além disso o código fonte do exemplo está disponível no link ao final do post. Com esse material você poderá reusar ou montar o seu próprio servidor Failover.

]]>
Por: Andreano Lanusse http://www.andreanolanusse.com/pt/como-implementar-failover-e-load-balance-no-datasnap-2010/#comment-1078 Thu, 29 Jul 2010 07:27:54 +0000 http://www.andreanolanusse.com/pt/?p=524#comment-1078 Em resposta a Marcelo.

Oi Marcelo,

HTTP é uma camada que corre sobre TCP/IP, isso o torno um pouco mais lento do que puro TCP. No exemplo que disponibilizei veja que a conexão do servidor de Failover para o servidor DataSnap é feita através de TCP/IP. Usamos HTTP como solução, pois todo o gerenciamento de sessão já está implementado no protocolo, facilita o roteamento das sessões, liberação de porta em firewall, etc… Lembre-se que nossa conexão DataSnap através de HTTP é bem leve e tem uma ótima performance.

]]>