Vítejte na blog.vyvojar.cz Přihlásit | Registrovat | Pomoc
Titulní Blogy Fotky Soubory

Mazinův blog o SharePointu

Problém s BlobCache

BlobCaching je užitečná funkce SharePointu, která umožňuje odlehčit databázovému serveru a urychlit přístup k souborům sdíleným pomocí SharePointu. Dá se zapnout ve web.configu a ukládá soubory, jinak uložené v databázi obsahu, na disk webového serveru. Díky tomu je pak přístup k nim rychlejší. Další detaily najdete např. zde.

S úspěchem jsme BlobCache využívali až do okamžiku, kdy uživatelé začali hlásit, že v našich stránkách se nezobrazují obrázky. Začal jsem pátrat po příčinách problému. Nejprve jsem zkontroloval, že soubory obrázků jsou v příslušné knihovně dokumentů. Byly tam a byly u nich zobrazeny i náhledy. I práva byla nastavena správně. Když jsem se ale pokusil daný obrázek zobrazit, nastal problém v podobě oblíbené chybové hlášky "Operaci nelze dokončit". V eventlogu ani v logu SharePointu nic nebylo. Napadlo mě, že by to mohlo být způsobeno zapnutou publikací (ta nám už pár horkých chvil připravila), ale na dotyčném webu byla vypnutá. Pátral jsem proto dále a uvědomil jsem si, že se to týká jen obrázků, ale ne ostatních dokumentů. To mě přivedlo na stopu BlobCache a když jsem si ještě zapnul debug výpisy bylo jasno. SharePoint padal ve funkci Microsoft.SharePoint.Library.SPRequestInternalClass.GetAllAclsForCurrentSite, která se, podle jejího názvu, snažila získat všechny Access Control List (seznam práv k jednotlivým položkám) pro danou site.

Co ale s tím a proč to dosud fungovalo bez potíží? Pídil jsem se po internetu a našel jsem mnoho rad o tom, že je to způsobeno porušením cache na disku, a že je tedy potřeba provést její reset. Ani opakovaný nezabral. Pátral jsem tedy dále, až jsem narazil zde na někoho se stejným problémem, který to ale "hnal vejš" a obrátil se na podporu Microsoftu. Dostal překvapivou odpověď, viz. poslední příspěvek na té stránce. Když to shrnu, jde v podstatě o to, že funkce BlobCache přestane fungovat tehdy, když máte na SharePointu více než 10000 položek s vlastním nastavením práv (tedy takové, které není děděné z nadřazené položky). Dá se jen spekulovat proč. Pravděpodobně vývojářský tým došel k závěru, že taková operace (která je ale nutná, aby nebyl uživateli poskytnut soubor, na který nemá právo) by už trvala příliš dlouho a zisk z cache na disku by byl minimální, pokud vůbec nějaký. Škoda jen, že to není v dokumentaci k BlobCache, a že to prostě jednoho krásného dne padne na ústa. Oněch 10000 položek s individuálně nastavenými právy totiž není pro podnikový intranet nic závratného.

Zveřejněno Monday, April 19, 2010 11:52 PM by mazin

Komentář

Žádné komentáře
Neregistrovaní uživatele nemužou přidávat komentáře.

Syndication

News

  • Web Developer
  • Enterprise Application Developer

  • Microsoft Office SharePoint Server 2007, Application Development
  • Microsoft Windows SharePoint Services 3.0, Application Development
  • Microsoft Office SharePoint Server 2007, Configuration
  • Microsoft Windows SharePoint Services 3.0, Configuration
  • .Net Framework 2.0, Distributed Applications
  • .Net Framework 2.0, Web Applications
  • .Net Framework 2.0, Windows Applications
Powered by Community Server (Personal Edition), by Telligent Systems