none
Duvida sobre acessos a um webservice RRS feed

  • Pergunta

  • Contrui um webservice em utilizando C# o qual possui alguns metodos "genericos" digamos assim tenho a minha conexão com o Banco de Dados (Oracle) tenho um metodo que me retorna um DataSet a partir de uma query SQL passada como parametro, tenho um metodo que me retorna um valor especifico ou seja um metodo ao qual recebe uma query SQL e me retorna um registro somente esse metodo utiliza um DataReader coisa simples na verdade e um outro metodo ao qual eu informo como parametro instruções INSERT ; UPDATE ; DELETE basicamente isso somente do webservice e tenho 5 aplicações que utilizam o mesmo webservice, essas aplicações estão em dispositivos moveis no inicio tudo funcionou bem mas hoje tenho 5 aplicações que utilizam o webservice e mais ou menos e 25 dispotivos moveis utilizando o webservice de uns dias para ca os programa começaram da retornar muitas mensagens de erro referentes a conexão alguns funcionavam com uma certa lentidão outros a cada pesquisa de registros gerava mensagens de erro de conexão ... fiz inumeros testes de rede wireless dos aparelhos ... as tabelas do Banco de Dados utilizadas possuem indices tudo OK e acabei me deparando um uma suspeita : onde achei que o webservice estava sendo sobre carregado digamos assim pois uma das minhas aplicações utiliza um webservice especifico para ela e essa aplicação funciona muito bem então resolvi criar um webservice para cada aplicação mesmo nem todas as aplicações ainda estando conectadas em seu webservice especifico ja senti melhora em desempenho das aplicações e as demais aplicações que ainda utilizam meu webservice generico digamos assim melhoraram na questão de mensagen de erro de conexão

    Atraves desse cenario existe alguma restrição qto ao uso dos webservices creio que não pois existem webservices publicos com um grande nivel de acesso alguem ja passou por um problema desse tipo ?

    Vlw


    Junior
    quinta-feira, 9 de junho de 2011 11:46

Todas as Respostas

  • Junior,

    Quais seriam as mensagens de erro que você estão acontecendo? A partir delas é possível identificar onde está o gargalo e atuar na sua resolução.

    at.,


    Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono)
    quinta-feira, 9 de junho de 2011 11:54
  • A mensagem de erro não tenho ela agora mas a mensagem referia-se a erro de conexão, como disse no post reescrevi o webservice e com isso melhorando meus webmethods as aplicações melhoraram a performance e as mensagens de erro de conexão não estão sendo geradas mais.

    Creio que o gargalo de minha aplicação se dava pelo fato de estar usando um mesmo webservice e não um webservice com metodos especificos onde eu conseguiria melhorar minha aplicação pois eu tinha um webservice com 3 metodos um que me retorna um dataset um outro que executa minhas instruções (insert ; update ; delete) e um outro que contem um datareader que me retorna um unico valor e minhas aplicações utilizavam esses metodos contantemente digo constantemente pois o cenaria seria o seguinte: Eu precisava carregar  a descricao do produto o preço e estoque então minha aplicação fazia o seguinte

    descricao do produto  = meu_ws.retornaValor(query SQL); retorna a descricao
    preço                       = meu_ws.retornaValor(query SQL); retorna o preço
    estoque                    = meu_ws.retornaValor(query SQL); retorna o estoque

    Como eu estava chamando os metodos um atras do outro eu creio que esta ocorrendo uma sobrecarga no webservice pois a cada chamada eu conecto no Banco de Dados e busco os dados esse webservice antigo ainda funciona mas apos criar um novo webservice com uma programação bem mais inteligente os programa melhoram muito o desempenho e os erros desapareceram agora estou migrando todos os programas para esse novo webservice ou seja tenho 5 aplicações diferentes cada uma agora com seu webservice especifico e seguindo uma codificação bem acertada creio que não terei mais gargalos nas minhas aplicações

     

     


    Junior
    sexta-feira, 10 de junho de 2011 11:58
  • Junior,

    A criação de Web Services "especialistas" é uma solução para otimizar o acesso ao Web Service, mas mesmo a utilização de Web Services "genéricos" não deveriam ter problemas quanto a escala e utilização por várias aplicações.

    Pode ser que isto que você está fazendo resolva o seu problema por agora... mas se você não rever o seu código problemático, o possível que você tenha problemas no futuro.

    Mas como você disse que melhorou os serviços e já otimizou o código, pode ser que isto tenha feito a diferença e não somente a criação de novos web services, compreende?

    at.,


    Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono)
    sexta-feira, 10 de junho de 2011 13:28