Fórum Porque meu SocketServer (3 Camadas) trava? #296617
22/09/2005
0
Estou usando COM, e todas as portas estao abertas no windows 2k Server.
Desde ja agradeco
Titanius
Curtir tópico
+ 0Posts
22/09/2005
Nandolh
Gostei + 0
22/09/2005
Nandolh
Se alguém souber de algo, agradeceria muito.
Gostei + 0
22/09/2005
Titanius
Estou quase desistindo também, mas pra qual vc mudou?
Gostei + 0
22/09/2005
Nandolh
:cry:
Gostei + 0
22/09/2005
Marioguedes
Gostei + 0
22/09/2005
Thomaz_prg
Gostei + 0
23/09/2005
Titanius
O problema é o seguinte: Eu tenho um servidor COM, e eu uso o SocketServer (SocketConnection) para conectar no servidor, visto que não consegui fazer funcionar com o DCOM e nem com o WebConnection. Quando algum cliente está fazendo algum processamento grande, como por exemplo Refaz Acumulados e algum outro cliente tenta conectar, o ScktSrvR.exe (Socket Server da Borland), simplesmente trava!! e [b:320ded28ac]todos[/b:320ded28ac] os clientes travam, eu tenho que reiniciar o servidor COM, e reiniciar o scktsrvr.exe para voltar a funcionar... Isso acontece com 2 usuários... ou seja, muito estranho.
Eu aumentei o Cache pra 500000 e nada, :D.. Voce abandonou, mas está usando algo? Qual tecnologia?
[]s
Gostei + 0
23/09/2005
Emerson Nascimento
Call Synchronization = Required
Transaction Model = Requires a transaction
Além disso, crie sua classe COM+ com os parâmetros ciSingleInstance e tmApartment pra ver se resolve.
Se as suas configurações não estiverem dessa forma e você as alterar, será necessário desinstalar o COM+ e reinstalá-lo. apenas substituir a DLL não dá certo.
Gostei + 0
23/09/2005
Emerson Nascimento
deveria ser uma Stored Procedure no servidor de banco de dados, que seria disparada pelo servidor COM+ em função da solicitação do client.
asim a conexão não ficaria comprometida de forma alguma, pois o cliente solicitaria (o que não ´pesa´ na aplicação) e o servidor dispararia a stored procedure, o que manteria o processo totalmente no servidor, sem mais utilizar a porta de comunicação ou os serviços do socket.
Gostei + 0
23/09/2005
Titanius
A rotina do refaz foi só um exemplo. Pra testar eu fiz o seguinte, criei uma tabela de testes, e no cliente, coloquei um FOR pra incluir alguns dados, ou seja, simulando que alguns usuários estariam inserindo os dados, e com isso o outro cliente na hora que conecta ele trava.
Bem, o meu servidor está
Call Synchronization = Required
Transaction Model = Requires a transaction
tmApartment
cMultiInstance
jah tentei com
tmBoth
cMultiInstance
e
tmBoth
cSingleInstance
e o RDM está como Pooled
Será que é configuração errada minha?
[]s
Gostei + 0
23/09/2005
Emerson Nascimento
aqui criamos os objetos com ciMultiInstance e tmSingle, com Call Synchornization=Required e Transacion Model=Does not support transactions, e ainda com o object pooling desmarcado.
foi feito um programa para estressar o sistema. esse programa tinha um for..next que inseria 2.000 registros e foi executado simultâneamente em 6 micros. o sistema sequer ficou lento.
tente com essas configurações e veja se resolve seu problema.
Gostei + 0
23/09/2005
Titanius
Transacion Model=Does not support transactions
no livro que tenho, fala que isso aí diz: não há suporte para transação.
e como funcionaria então? não teria algum problema com várias máquinas ligadas ao mesmo tempo não?
E mais uma coisa... onde eu tenho master-detail quando eu chamo ele dá: falha catastrófica.
[]s
Gostei + 0
23/09/2005
Emerson Nascimento
se estiver com qualquer outro flag que suporte transações. as mesmas serão implícitas, controladas pelo próprio objeto COM+.
quanto ao ´Falha catastrófica´ no master-detail não sei te dizer. utilizo nested tables.
Gostei + 0
23/09/2005
Denis
Tbm tive problemas com socket server. Mas isto aconteceu em uma máquina que tem windows 2000. Então transferi a aplicação para uma outra com windows XP e não tive mais problemas.
Será que é algum Bug do 2000 ? Estranho isso né ?
Gostei + 0
23/09/2005
Titanius
É eu uso o ClientDataSet mesmo... tem alguma diferenca? e sobre Windows, procede?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)