Fórum Soap Delphi7 FireBird #340538
18/04/2007
0
Desenvolvi uma aplicação utilizando Soap e FireBird.
Minha aplicação acessa uma dll no servidor q faz as requisições ao Banco q está em um Servidor Web. E cada vez q a aplicação da um Post o ´Number of Attachments´ aumenta.
E quando chega a um numero elevado eu perco a conexão(provavelmente, excede o limite).
Localmente tb aumenta o Number of Attachements, mas, funciona perfeitamente(pois, naum possuo limites d conexão)
Alguem já passou por algo parecido?
Number of Attachments é o nº de conexões simultâneas???
Oq q eu poderia fazer para reduzir o Number of Attachments
Rspinheiro
Curtir tópico
+ 0Posts
18/04/2007
Rspinheiro
Gostei + 0
19/04/2007
Jujan
Gostei + 0
20/04/2007
Rspinheiro
muito obrigado pela resposta... mas creio q o meu problema está na quantidade de conexões no meu webservices, pois cada vez q eu dou um post é criada uma nova conexão.
eu preciso de alguma maneira encerar essa conexao logo após q dou o Post... Mas, naum sei como faze-lo.
Não sei se issu eh um problema do Soap ou do Sistema do Servidor(windows 2003)
grato,
Ricardo Pinheiro
Gostei + 0
20/04/2007
Jujan
Gostei + 0
20/04/2007
Rspinheiro
Testei sua dica, mas, meu webservice eh uma dll que esta sempre online, por issu, eu naum passo pelo evendo OnDestroy.
Estou tentando fechar minha conexao de qualquer jeito, mas, naum estou conseguindo.
vc tem outra idéia???
Gostei + 0
20/04/2007
Alex Maia
Você já tentou usar o seu servidor como sendo um exe ao invés de uma dll? Comecei a desenvolver um sistema em 3 camadas usando SOAP tendo como servidor uma dll e tinha muitas dificuldades. Depois de um tempo mudei para um exe e não tive mais problemas. Até a performance do sistema ficou melhor com o exe. T+
Gostei + 0
23/04/2007
Rspinheiro
Antes quero lutar mais um pouco.
Grato,
Ricardo Pinheiro.
Gostei + 0
23/04/2007
Brunolspp
SOAP
não foi desenvolvido para ser servidor de aplicaçao e conter regras de negocio pesadas e acesso a dados.
para se ter perfromance vc precisa aplicar conceito de multicamadas na aplicação, usar um container rapido e seguro como o Borland Socket Server(BSS).
a dica do colega com relação a usar CGI ao inves de ISAPI realmente e melhor.
Fazer pooling tb ajuda.
Mas se vc rpecisa de perfromance nesta estrutura vc não conseguirá, migre para BSS, com ele vc faz a interface q quiser, win32, IW, SOAP, etc...
no meu link de downloads gratuitos(abaixo da minha assinatura) vc encontra varios exemplso de aplicaçoes de alta performance com multicamadas e datasnap.
alem de ter um grupo de usuarios especifico a mais de 2 somente sobre este assunto: nddv@yahoogrupos.com.br
Gostei + 0
24/04/2007
Jujan
Para mudar a estrutura vc terá que copiar seus objetos de conexões q vc utiliza no seu ISAPI e colar na nova aplicação CGI que vc criou.
Quando vc compila a sua aplicação servidora seria interessante verificar se vc está compilando ela com o SQLConnection aberto se estiver feche e compile ela.Outra observação quantos SQLConnection vc colocou na sua aplicação e quantos usuários acessam ela.Desenvolver um modelo de pool também é um boa idéia como o Bruno falou, mais não mude direto para o BSS que é uma boa solução, pois se sua aplicação não trabalhar em rede local vc pode ter problemas com configuração de portas e acesso, pois essa é a base do BSS trabalhar com Socket através de portas já o WebService o acesso é via Http com o protocolo SOAP de transporte, para redes web é o melhor caminho na minha opinião.
Gostei + 0
24/04/2007
Brunolspp
BSS e mto mais escalavel q SOAP e mais rapido, leve e seguro.
ele e mto melhor pra rede local ou pra Web ja q vc pode definir em q porta, e naum precisa de trabalhar com nenhum servico sobre IP como e o caso do soap.
vc trabalha sobre IP diretamente..
e a porta so te dar maior mobilidade e opcao de configuracao..se o problema for porta, poem ele na 8080 por exemplo.
realmente essa questao da porta não é o motivo de não usar BSS, pelo contrario, é o motivo de usar :D
Gostei + 0
24/04/2007
Jujan
Porque vamos ser lógicos senão fosse bom a Microsoft e CodeGear não colocaria em seus produtos tal tecnologia e a IBM não incentivaria o uso da tecnologia.
Gostei + 0
24/04/2007
Brunolspp
so procurei esclarecer pontos de utilizaçAo e alpicacao tecnologica q geralmente naum sao abordados. e contribuir com o pouco de experiencia q tenho pra q tds possamos nos ajudar.
me desculpe alguma coisa, me perdoe se vc entendeu q estava impondo uma solucao, apneas estava expondo o q sei com a intencao de ajudar e naum de puxar sardinha pra lado nenhum.
tamus juntos e misturados pra poder crescer, conta comigo para o q precisar. e mais uma vez, desculpa qq coisa diferente q expressei a não ser esclarecer e ajudar
Gostei + 0
24/07/2007
Rspinheiro
eu já mudei para CGI, mudei para Apache, mudei até o objeto de conexão... e continuo com o mesmo problema, quando vou converir as conexões ainda estão abertas(como vc pod ver abaixo) mesmo apos ter fechado minha aplicação....
C:\>netstat -an | find ´:3050´
TCP 0.0.0.0:3050 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1131 127.0.0.1:3050 TIME_WAIT
TCP 127.0.0.1:1132 127.0.0.1:3050 TIME_WAIT
TCP 127.0.0.1:3050 127.0.0.1:1133 TIME_WAIT
TCP 127.0.0.1:3050 127.0.0.1:1134 TIME_WAIT
TCP 127.0.0.1:3050 127.0.0.1:1135 TIME_WAIT
Cada conexão eh dada após um open do meu cds...
se puder me ajudar ficarei muito grato,
[]s,
Ricardo Pinheiro
Gostei + 0
24/07/2007
Brunolspp
vc precisa configurar no evento newsession para conectar e closesession para fechar a conexao.
no BSS nao teria este problema.
mas faz isso q resolve sua vda pro enquanto
Gostei + 0
24/07/2007
Rspinheiro
Como eu poderia fazer para configurar estas sesões???
Grato,
Ricardo Pinheiro.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)