Pergunta

Eu tenho um problema estranho.Eu estou usando o objeto de cache mais rápido de obter resultados ao usar SPQuery.

Meu código para obter itens é a seguinte:

PortalSiteMapProvider ps = PortalSiteMapProvider.CurrentNavSiteMapProviderNoEncode;
var items = ps.GetCachedListItemsByQuery(((PortalSiteMapNode)ps.CurrentNode).WebNode, "mylistname", myQuery, site.RootWeb);

Quando eu executar esse código eu recebo todos os resultados que satisfaz a condição de consulta (não importa quantas vezes eu atualizar a página).No entanto, se eu fazer qualquer alteração (lista de adicionar ou excluir item), o objeto de cache retorna alterado o conjunto de itens de uma só vez.Da próxima vez que eu atualizar a página eu obter 0 resultados.

E. g.se eu tivesse 5 itens e, em seguida, adicionar 1 novo item, fico com 6 itens, que é o resultado correcto.Mas quando eu atualizar a página novamente eu obter 0 resultados.Este estado persistir até que eu reciclagem do pool de aplicativos ou flush cache de objetos.

Meu Objeto de cache é definido 300MB, é a verificação de alterações quando a consulta é executada e o valor do multiplicador é definido como 3.

Alguma idéia do que poderia ser a fonte dos meus problemas?

Qualquer conselho é bem-vinda!Obrigado.

EDITAR:

Eu olhei para ULS e encontrei este entradas quando 0 itens são retornados:

Cache miss for query Web (nor all entries not found) "query .... "
Fetching 4294967295 items.
Fetching super user items.
Fetching SuperReader items.
Merging super user and super reader items.
Cache Hit for query Web "query ... "
Creating result set.
Adding super user IDs.
Adding Super Reader IDs.
Nothing from SuperReaders.
Foi útil?

Solução

"Cache miss para consulta Web" pode ser a resposta.Você pode olhar o log de ULS para a parte errada.Eu iria olhar para o log de ULS para a primeira execução bem-sucedida e veja se não há um erro de cache para a lista que resulta em um cache de despejo para a lista que você está consultando.

Você pode ser capaz de resolver alterando a consulta do lado do servidor para o lado do cliente.Se me lembro corretamente lado do cliente consultas tendem a puxar a lista inteira antes de executar a consulta, então eu acho que você pode obter de acertos do cache de cada vez.

Outras dicas

Erros de Cache são mais provável de acontecer devido a memória insuficiente como todos eles são armazenados na memória Ram.Se não, em seguida, principalmente, a causa deve fazer com a configuração de Cache.Gostaria de sugerir para tentar diferentes configurações especificadas para o cache de objetos, como mudar o maxSize diretamente na web.config etc.no artigo abaixo,

http://technet.microsoft.com/en-us/library/cc770229(v=office.14).aspx

Também garantir que o cache de objeto de contas de usuário são configuradas corretamente como mencionado no artigo abaixo,

http://technet.microsoft.com/en-us/library/ff758656(v=office.14).aspx

eu acho e não sei se este é realted para o perfil de cache modificar um item de fazer cache sujo e é por isso que o seu próximo pedido está dando nada ..porque o objeto não é mais válido dê uma olhada e jogar com o perfil de cache de configurações ..há um par de intranet e extranet ou anônimos

SunChero

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top