Servidores de aplicação não fecham (3 camadas)
07/12/2005
0
Tenho um aplicativo em 3 camadas, onde abro o sistema e o mesmo starta 3 servidores no tray, o sistema abre direitinho, coloco senha ele entra normalmente, o problema tá no seguinte:
Estava trabalhando com o Delphi 6 e tudo tava ok, migrei para o Delphi 7 e agora toda vez que fecho o sistema os servidores de aplicação não fecham no tray. Eles ficam rodando, se tentar abrir a aplicação novamente ela não abre ficando travada, ai tenho que dar CTRL+Alt+Del e finalizar os Servidores, um a um.
Debuguei o programa e os servidores em tempo de execução eles conectam e desconectam manualmente ou seja, uso o DCOMConnection junto com um SimpleObjectBroker para conectar os servidores, quando dou um conect no DataModule via DCOM o servidor aparece conectado no tray normalmente, se dou um disconect ele disconecta normalmente também.
O problema tá ai quando a aplicação roda e a fecho os servidores não fecham. Se tentar fechar os servidores na mão com o botão direito (coloquei um botão fechar) eles travam. Se executar somente os servidores sem a aplicação principal consigo fecha-los normalmente.
Alguem tem alguma solução?
Nilsonalvernaz
Posts
11/12/2005
Thomaz_prg
12/12/2005
Nilsonalvernaz
12/12/2005
Thomaz_prg
Mas o erro surgiu do nada mesmo.
12/12/2005
Nilsonalvernaz
Vc trocou o Dcom pelo socket correto?
Notou alguma diferença de performace? teve que mudar alguma coisa?
Pois já tenho todo meu sistema estruturado terei que mudar mais alguma coisa?
Tenho que mexer nos servidores tmbm?
12/12/2005
Thomaz_prg
Vc trocou o Dcom pelo socket correto?
Correto. E meu problema desapareceu.
[quote=NilsonAlvernaz]
Notou alguma diferença de performace? teve que mudar alguma coisa?
A performace ficou a mesma... e ainda tive o controle de quem estava usando o sistem (o IP da máquina). Praticamente não mudei nada, porque eu conectava meus CDS (ClientDataSets) a um ConnectionBroker e Conectava o ConnectionBroker ao componente de conexão remota (que era DComConnection e depois troquei por SocketConnection). Então não fiz mudança nenhuma.
[quote=NilsonAlvernaz]
Tenho que mexer nos servidores tmbm?
Não. Na máquina servidora, basta que o Socket Server - Scktsrvr.Exe esteja ativo (encontrado na pasta C:\Arquivos de Programas\Borland\DelphiX\Bin). Eu apenas coloquei esse aplicativo para iniciar junto com o windows (no registro, chave HKEYLOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run. Basta adicionar uma chave com um nome qualquer, e colocar o caminho do aplicativo).
Só isso. Quanto aos SQL´s e todos os demais comandos, permanacem os mesmos.