Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
668
Assunto : WebServices
Titulo: Melhorando os recursos de cache em WebServices

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



Quando utilizamos WebServices podemos configurar o cache de resposta dos webServices através do atributo cacheDuration. Este atributo é configurado em segundos, assim sendo durante este tempo o webService não será processado, seu resultado será devolvido a partir do cache.

Porém em determinados casos não desejaremos manter informações em cache com base em tempo. Desejaremos manter a informação em cache até que os dados sofram alguma alteração e, quando isso acontecer, invalidar o cache imediatamente. Se utilizarmos apenas o atributo cacheDuration quando os dados forem alterados ainda assim a resposta continuará sendo a do cache, até que o tempo do cacheduration passe.

O mesmo problema também ocorre com páginas e sugeri uma solução no artigo que encontra-se em http://www.bufaloinfo.com.br/artigos/coluna11.asp , mas como resolver o problema em um WebService ?

Através do objeto httpCachePolicy que pode ser acessado através de context.response.cache, podemos controlar os critérios para que o cache seja mantido ou não, e assim ter um maior controle sobre o processo de cache.

<WebMethod(cacheduration:=360)> _
Public Function HelloWorld() As String

Context.Response.Cache.AddValidationCallback(AddressOf Validate, Nothing)

'aqui continua o processamento

End Function


Public Sub Validate(ByVal context As HttpContext, ByVal data As Object, ByRef status As HttpValidationStatus)

If Not IsNothing(context.Cache("dados")) Then
status = HttpValidationStatus.Valid
Else
'Pode-se carregar o dataset aqui
'em seguida insere-se o dataset no cache
context.Cache.Insert("dados", ds1, New Caching.CacheDependency("c:\dados\arquivo.xml"))
End If
End Sub


Utilizamos o método AddValidationCallBack para adicionar no httpcachepolicy uma referência para o método validate. Desta forma o método validate será chamado para verificar se o cache deve ou não ser mantido.

Com isso ganhamos dos dois lados : mantemos os dados em cache, evitando ir ao banco e invalidamos o cache quando ocorrer mudança, ao mesmo tempo que também mantemos a página em cache, evitando fazer o processamento de retorno e obtendo o máximo em performance e escalabilidade.


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br