Das CU Dezember für SharePoint 2010 ist nun schon ein paar Wochen verfügbar. Finden tut man das ganze unter der offiziellen Microsoft Seite Updates for SharePoint 2010 Products. Dort kann man sich immer das neuste Material herunterladen. Den Post schreib ich aber nur, um euch auf den folgenden Satz aufmerksam zu machen, der unter dem CU December steht:
alle wichtigen Office Dokumente im Browser anschauen - unabhängig von der Client Version. Mit Office Web Apps und SharePoint 2010 ist dieses Szenario sehr einfach realisiert. Die Installation und Konfiguration der Dienstanwendungen in SharePoint ist kein nennenswerter Aufwand. Auch die Administration ist für einen SharePoint Admin keine sehr großer Bedrohung - wenn man denn weiß was zu tun ist :-) Eine der Stellschrauben, die all zu oft vergessen werden ist der Cache der Office Web Apps. Office Web Apps laden jedes aufgerufene Dokument in den Cache - das erhöht die Geschwindigkeit des Renderings wesentlich! Nun kann man sich vorstellen, dass der Cache recht schnell einiges an Platz auf der Platte nimmt. Diesen Platz gilt es im Auge und unter Kontrolle zu halten!
Dafür gibt es einen lesenswerten TechNet Artikel. Zusammengefasst gilt es folgendes zu beachten:
Der Cache wird einmal pro Webanwendung angelegt,
der Cache wird automatisch in eine Websitesammlung abgelegt und somit in eine SharePoint Inhaltsdatenbank.
Eingestellt werden kann am Office Web Apps Cache:
Die maximale Größe,
das Ablaufdatum.
Mit beiden Einstellungen kann man schon dafür sorgen, dass einem der Cache nicht über den Kopf wächst. Nun will man den Cache aber auch nicht unbedingt in seiner produktiven Inhaltsdatenbank und somit auf seinen Datenbanksicherungen. Daher sollte in der Routine zum Anlegen einer neuen Webanwendung direkt enthalten sein, den Office Web Apps Cache in eine eigene Inhaltsdatenbank umzuziehen. Das kann man natürlich mit der PowerShell erledigen ( wie es der Artikel schon sehr gut beschreibt ).
Ich habe mir folgendes Skript daraus geschrieben, mit dem jeder Admin in der Lage sein sollte, die Wartung des Web Apps Caches vorzunehmen ohne sich die einzelnen Befehle suchen und bearbeiten zu müssen.
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null)
{
Add-PSSnapin Microsoft.SharePoint.PowerShell
}
$webAppUrl = Read-Host "URL of the Webapplication"
$DBServer = Read-Host "Database Server"
$CacheSize = Read-Host "Max Cache Size GB"
$expirationDays = Read-Host "Expiration Period in Days"
Write-Host "..."
Write-Host "Your Web Application: " -nonewline; Write-Host $webAppUrl -ForegroundColor Yellow
Write-Host "Cache Byte Limit is set to " -nonewline; Write-Host $GBSizeInBytes -ForegroundColor Yellow -NoNewline; Write-Host " and Expiration Time to " -nonewline; Write-Host $expirationDays -ForegroundColor Yellow -NoNewline; Write-Host " days..."
Write-Host "Operation completed successfully..." -ForegroundColor Green
}
else
{
Write-Host "The operation was chanceled by user input..." -ForegroundColor Red
}
Greift zu und speichert das Skript einfach als PS1 Datei ab. Aufrufen könnt Ihr es dann in der PowerShell mit dem Befehl C:\<Pfad>\<Dateiname>.ps1 .
In der 2007er Version von SharePoint war ein WarmUp Skript für SharePoint, zum Beispiel dieses von Joel Oleson, Standard. Denn schon damals hatte es der IIS 6.0 an sich, die Webanwendungen Nachts zu recyclen und somit den Cache zu leeren. Der erste Seitenaufruf einer SharePoint-Seite ist nach dem leeren des Caches sehr langsam. Diese Problemstellung hat sich in Zeiten von IIS 7.5 und SharePoint 2010 nicht geändert. Nun gibt es ja für den IIS 7.5 WarmUp Plugin, für dessen Uninstall ich auch schon einen Blogpost geschrieben habe :-)
Die große Preisfrage ist: Was hab ich getan, nachdem das Plugin weg war? Ganz einfach, ich habe ein PowerShell Skript geschrieben, das durch jedes Web iteriert und über eine Webrequest jede Seite einmal aufruft. Das Skript wird durch eine geplante Windows Aufgabe von einem SharePoint Server ausgeführt.
Eine einfache Version eines solchen Skripts sieht folgendermaßen aus:
WRITE-HOST "Folgender Fehler ist aufgetreteb: " + $WebExceptionMessage
}
}
}
}
Im Gegensatz zu den Skripts, die ich beim meiner ersten Suche gefunden habe ist das oben erfrischend simpel und lädt zur phantasievollen Weiterentwicklung ein. Wer das ganze eher pragmatisch angeht, kopiert einfach den Code oben in eine Textdatei, speichert diese mit der Endung "ps1" und führt diese ps1 als Aktion im geplanten Windows Tasks einmal die Nacht nach zwei Uhr morgens aus. Beachtet dabei, dass das Skript nur auf einem SharePoint Server ausgeführt werden kann.
Für IIS 7.5 findet man hier ein nettes WarmUp Tool: Download IIS 7.5 Application Warm-Up . Dieses Tool ermöglicht es einem Administrator, den ersten Benutzer am frühen Morgen nach dem nächtlichen Application Recycle des IIS trotzdem eine angenehm schnelle SharePoint Erfahrung zu ermöglichen. Zu den alten IIS 6.0 und SharePoint 2007 Zeiten hatte man noch Skripts eingesetzt, um nach einem Reset des IIS die SharePoint-Seiten einmal in den Cache zu laden. Das IIS Tool aus dem Hause Microsoft ermöglicht nun eine Konfiguration über die IIS Manager Oberfläche. Man findet zahlreiche gute Blog-Einträge die das Vorgehen hierzu beschreiben, zum Beispiel hier.
Das Einrichten ist denkbar einfach, ebenso die Deinstallation des Tools. Leider ist die Konfiguration auch nach der Deinstallation noch in der web.config der SharePoint-Webanwendungen. Zur Freude eines jeden SharePoint Admins führt eine invalide web.config von SharePoint bei jedem Seitenaufruf zu folgendem Fehler:
HTTP Error 500.19 - Internal Server ErrorThe requested page cannot be accessed because the related configuration data for the page is invalid.Detailed Error Information
Um den Fehler zu beseitigen, muss man jede web.config von Hand anpassen und den Knoten "httpWarmup" in jeder web.config suchen und entfernen.