GARANTIR DESCONTO

Fórum Soap Delphi7 FireBird #340538

18/04/2007

0

Pessoal,
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

Rspinheiro

Responder

Posts

18/04/2007

Rspinheiro

sobe


Responder

Gostei + 0

19/04/2007

Jujan

Experimente criar um outro webservice para diminuir a carga em cima do seu webservice, é interessante entender que o webservice é uma página de acesso a dados e funções através de um protocolo Http e com isso tem as limitações do protocolo de internet, se está pesado demais vc pode balancear revendo a sua rede(muitíssimo complicado) ou então montando novos webservices paar dividir o peso e revendo suas consultas.


Responder

Gostei + 0

20/04/2007

Rspinheiro

jujan,

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


Responder

Gostei + 0

20/04/2007

Jujan

Cara se for conexão vc tem q ver se está sendo fechada a conexão toda vez que vc deixa de usar os objetos, no webservice no SoapModule tem o evento onDestroy coloca para fechar a conexão do SqlConnection lá.


Responder

Gostei + 0

20/04/2007

Rspinheiro

Jujan,
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???


Responder

Gostei + 0

20/04/2007

Alex Maia

Amigo,
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+


Responder

Gostei + 0

23/04/2007

Rspinheiro

só que para issu eu preciso alterar toda a estrutura...

Antes quero lutar mais um pouco.

Grato,
Ricardo Pinheiro.


Responder

Gostei + 0

23/04/2007

Brunolspp

galera

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


Responder

Gostei + 0

24/04/2007

Jujan

Quote[só que para issu eu preciso alterar toda a estrutura... ]

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.


Responder

Gostei + 0

24/04/2007

Brunolspp

cara..

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


Responder

Gostei + 0

24/04/2007

Jujan

Caríssimo Bruno entendo a sua prioridade pelo BSS que tbm acho muito bom, porém estou somente tentando ajudar o colega na tecnologia que ele escolheu e por seus motivos que tal ao invés de ficarmos discutindo qual tecnologia gostamos mais, vamos tentar ajudá-lo com nossas experiências na tecnologia que ele escolheu, pois eu utilizo webservice em aplicações de altas demandas e tenho perfomace satisfatória dos meu aplicativos, assim como sei que vc tbm já desenvolveu coisas na tecnologia e sabe que é bom tbm.

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.


Responder

Gostei + 0

24/04/2007

Brunolspp

naum estopu falando pra naum usar soap, so estou esclarecendo q soap foi desenvolvido(no consorcio q envolve, SUN, IBM, Borland, Microsoft) para interfaces e naum com o objetivo de container de processamento pesado e acesso a dados, algyumas companhias(como a borland) q incluiram possibilidades disso na estrutura.. e naum falo do BSS pq gosto e nem disse q naum se pode fazer algo performatico com SOAP, ate pq uso SOAP e mto.

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


Responder

Gostei + 0

24/07/2007

Rspinheiro

jujan,

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


Responder

Gostei + 0

24/07/2007

Brunolspp

tanto soap qto isapi vao trazer este problema.

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


Responder

Gostei + 0

24/07/2007

Rspinheiro

´vc precisa configurar no evento newsession para conectar e closesession para fechar a conexao.´


Como eu poderia fazer para configurar estas sesões???

Grato,
Ricardo Pinheiro.


Responder

Gostei + 0

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

Aceitar