Fórum criar um novo servidor multicamada #16912

03/03/2010

0

ola     estou com seguinte problema   uso aplicacao multicamada com delphi 2007   e tenho que rodar no mesmo servidor  os programas servidores   para empresas diferente   so que na   mesma maquina     gostaria de saber como eu faco par duplicar  meu servidor de aplicacao   para que eu possa registrar eles com nome diferente na   mesma maquina servidor   levando tipy llbery junto       se faltou alguma coisa vamos coversando vou tentando explicar melhor     obrigado  
Jorge Barbosa

Jorge Barbosa

Responder

Posts

03/03/2010

Rodrigo Mourão

Olá Jorge,

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,

Responder

Gostei + 0

03/03/2010

Jorge Barbosa

rodrigo     e seguinte eu tenho um sistema unico para todos os meus clientes   com servidores para cada modulo   o meu cliente colocou o banco de dados eu uso o postgresql   tenho tres banco de dados diferentes   na  mesma maquina     e um unico servidor tenho que acessar quando a empresa A tenho que acessar  o mesmo  o banco a     quando eu cliente solicitar a empresa  B tenho que acessar a empresa B   assim por com  C  so que eu tenho um unico servidor de aplicacao para fazer o acesso a base     eu achei que duplicando com nomes diferente resolveria     ou se vc tiver uma outra solucao  obrigado   e so penser que tenho tres empresa diferente cadas uma com seu banco de dados e tenho um unico servidor   de aplicacao   obrigado
Responder

Gostei + 0

04/03/2010

Rodrigo Mourão

Maravilha,

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,

Responder

Gostei + 0

04/03/2010

Jorge Barbosa

isso mesmo a ideia e este   uma unica coisa como eu passo este paramento para sqlconnection  de eu estou na estacao com socket   connection este funcao que eu nao tenho ideia mas o desenho e isso mesmo    
Responder

Gostei + 0

04/03/2010

Rodrigo Mourão

Vc ano vai fazer no cliente  vai fazer no servidor.

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,


Responder

Gostei + 0

04/03/2010

Jorge Barbosa

rodrigo   achei super legal   so fiquei com uma duvida eu  uso loadparmsconnect  no meus   servidores   eu continu usando ou coloco false nele co  este nova   condicao que vc passou
Responder

Gostei + 0

04/03/2010

Rodrigo Mourão

AI vai depender. Se vc carrega os parametros quando inicia o servidor então nao vai poder ser assim pq ai a conexão vai ser feita no inicio e ja vai conectar ao banco.

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,

Responder

Gostei + 0

05/03/2010

Rodrigo Mourão

Olá Amigo, Podemos ajudar em algo mais? Estamos aguardando para encerrar o chamado !! Att,
Responder

Gostei + 0

07/03/2010

Jorge Barbosa

ola   so vou testar e retorno para vc
Responder

Gostei + 0

07/03/2010

Rodrigo Mourão

Perfeito Estaremos aguardando !!!

Att,

Responder

Gostei + 0

08/03/2010

Jorge Barbosa

ola rodrigo eu criei a seguinte funcao no servidor da aplicacao   procedure Tserver_pagar.funcaologin(const banco, local: WideString);
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  
Responder

Gostei + 0

08/03/2010

Rodrigo Mourão

So não entendi o

Raise Exception.Create(local+'  '+banco);

Poderia me informar qual o motivo ???

Acredito que o problema possa esta ai.

att,



Responder

Gostei + 0

08/03/2010

Jorge Barbosa

ola o  motivo e so para pode ver as variavis que carregou  
Responder

Gostei + 0

08/03/2010

Rodrigo Mourão

Pode comentar e tentar  novamente por favor para verificarmos se o motivo é este.

Att,

Responder

Gostei + 0

08/03/2010

Jorge Barbosa

oi   eu tirei     e erro agora e   INVALID VARIANT OPERATION   
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar