Fórum criar um novo servidor multicamada #16912
03/03/2010
0
Jorge Barbosa
Curtir tópico
+ 0Posts
03/03/2010
Rodrigo Mourão
Não faz mutio sentido "Duplicar" o servidor pois um servidor de app nada mais é que um ActiveX registrado na maquina, Activex este que possuem metodos que podem ser consumidos remotamente. Se eu tenho um servidor A com o metodos A, B, C e eu "Duplico" então eu terei o seguinte:
Servidor A
Metodo A
Metodo B
Metodo C
Servidor B
Metodo A
Metodo B
Metodo C
Os metodos serão os mesmo, porem em servidores diferentes. Não faz sentido.
Poderia me explicar a intenção disso?. Talvez a saida seja um Load Balance, Aninhamento de Servidor ou algo do Genero
Em tempo: "Duplicar" o servidor na verdade e criar outro TypeLybrary com os metodos e implementações, praticamente fazer outro projeto na base do Copy Paste. Obvio que poderiamos modularizar as implementações e concentrar num mesma unit usada por todos os projetos.
Att,
Gostei + 0
03/03/2010
Jorge Barbosa
Gostei + 0
04/03/2010
Rodrigo Mourão
Vamos pensar juntos .... Po falei igual telecurso 2000 rsrsrsrs
Bem um coisa e o servidor de app e outra coisa e o banco de dados. MultiCamadas funciona assim :
O que vc quer é isso aqui:
Então na hroa que o usuario se liogar no servidor e disser qual a empresa então você vai passar para o SQLConection os Parametros. Exemplo:
Se for Emrpesa A
Server: 10.0.0.0
Usuario: admin
senha: 123
DataBase: BancoA
Se for Emrpesa B
Server: 10.0.0.0
Usuario: admin
senha: 123
DataBase: BancoB
Se for Emrpesa A
Server: 10.0.0.0
Usuario: admin
senha: 123
DataBase: BancoC
Acho que a caminho e este.
Estou as ordens.
Att,
Gostei + 0
04/03/2010
Jorge Barbosa
Gostei + 0
04/03/2010
Rodrigo Mourão
Exemplo.
No servidor de App vc criar um funcao Login.
function Login(usuario, senha, empresa: String);
begin
If usuariocerto e senha certa then
begin
if Empresa = A then
begin
SqlConection.Params[username] := xxxx
SqlConection.Params[password] := xxxx
SqlConection.Params[database] := BancoA
end
else
if empresa = B then
begin
SqlConection.Params[username] := xxxx
SqlConection.Params[password] := xxxx
SqlConection.Params[database] := BancoB
end;
end;
end;
No Cliente vc faz Socketion.AppServer.Login(Rodrigo, 123, A) ou
Socketion.AppServer.Login(Rodrigo, 123, B).
Att,
Gostei + 0
04/03/2010
Jorge Barbosa
Gostei + 0
04/03/2010
Rodrigo Mourão
Pelo que entendi vc quer que um mesmo servidor acesse diferentes bancos de dados, entao nao podera mais carregar os parametros no inicio e sim quando o usuario logar.
Att,
Gostei + 0
05/03/2010
Rodrigo Mourão
Gostei + 0
07/03/2010
Jorge Barbosa
Gostei + 0
07/03/2010
Rodrigo Mourão
Att,
Gostei + 0
08/03/2010
Jorge Barbosa
begin
Raise Exception.Create(local+' '+banco);
SQLConnection1.Params.values['hostname'] := local;
SQLConnection1.Params.values['database'] := banco;
SQLConnection1.Connected :=true;
end;
e estou chamando ela assim na minha aplicacao so para testar procedure Tpagar1.FormCreate(Sender: TObject);
var
banco,local:string;
begin
banco:='tigra';
local:='127.0.0.1'; dtm_forn.SocketConnection1.Connected:=true;
try
dtm_forn.SocketConnection1.AppServer.funcaologin(local,banco);
dtm_forn.cdsempresa.Close;
dtm_forn.cdsempresa.Open;
finally
dtm_forn.SocketConnection1.Connected:=false;
end;
Label5.Caption:=dtm_forn.cdsempresaempr_razao_social.AsString;
DecimalSeparator:='.';
// formsplash.ShowModal;
end; e estou com seguinte erro method'funcaologin not supported by automation object
Gostei + 0
08/03/2010
Rodrigo Mourão
Raise Exception.Create(local+' '+banco);
Poderia me informar qual o motivo ???
Acredito que o problema possa esta ai.
att,
Gostei + 0
08/03/2010
Jorge Barbosa
Gostei + 0
08/03/2010
Rodrigo Mourão
Att,
Gostei + 0
08/03/2010
Jorge Barbosa
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)