Archiv

Archive for the ‘Allgemein’ Category

Microsoft Cloud Services behördlich anerkannt

Hallo,

Hier mal eine Information zum Thema Cloud Service von Microsoft. Die Enterprise Cloud Services (Office 365, Microsoft Azure, Microsoft Dynamics CRM und Windows Intune) wurden von allen 28 nationalen Datenschutzbehörden, die Unternehmen mit Niederlassungen innerhalb der Europäischen Union beaufsichtigen, anerkannt.

Hier der Link: http://blogs.technet.com/b/microsoft_blog/archive/2014/04/10/privacy-authorities-across-europe-approve-microsoft-s-cloud-commitments.aspx

 

Das ist doch schon mal ein super Signal in Richtung Zukunft der Cloud Services, vor allem auf Hinblick von SharePoint OnPremise und Hybrid Szenarien mit Office 365.

Gruß

Mario

Kategorien:Allgemein

Distributed Cache, lässt sich nicht starten “cacheHostInfo is null”

Folgende Situation:

Wir wollten in einer SharePoint 2013 Farm einen neuen Webserver hinzufügen um die Webfrontend Server zukünftig über ein Loadbalancer zu veröffentlichen. Nachträglich sollten die beiden Webfrondend Server für den Distributed Cache der SharePoint Farm genutzt und konfiguriert werden.

Nach dem der Server der Farm hinzugefügt war, wollte ich den Distributed Cache über die Zentraladministration starten.

Dabei wurde ein Fehler in Zentraladministration in “Services on Server” erzeugt.

Im Eventlog erschienen die drei folgenden Fehlermeldungen:

Log Name: Application
Source: SharePoint Foundation
Event ID: 7034
image

Log Name: Application
Source: SharePoint Foundation
Event ID: 3889
image

Log Name: Application
Source: SharePoint Foundation
Event ID: 6398
image

 

Der Lösungsversuch

Zunächst habe ich mit den Informationen aus der Technet versucht Informationen über den Status des Distrriuted Cache Clusters zu erhalten. Einen Überblick über den gesamten Cluster mit den Knoten bekommt man mit dem folgenden PowerShell Befehl.

$instancename ="SPDistributedCacheService Name=AppFabricCachingService"
Get-SPServiceInstance  | ?{($_.Service.Tostring()) -eq $instancename} | select Typename, Status, id, server | ft –AutoSize

image

Ich habe dann mit dem nachfolgenden Befehl, versucht den Server aus dem CacheCluster zu entfernen.

Remove-SPDistributedCacheServiceInstance

Aus dem Technet Artikel, siehe Link: Add or remove a server in a Distributed Cache cluster

Mit dem folgendem Ergebnis:
image

 

Nach dem dieser Befehl nicht erfolgreich war habe ich mich an den Technet Artikel, Repair a cache host orientiert.

$s = Get-SPServiceInstance GUID
$s.delete()

(Als Guid wurde die ID des Fehlerhaften Server eingetragen)

Dieser Befehl lief erfolgreich durch und der Server war aus dem Cache Cluster gelöscht. Zur Kontrolle wurde der erste Befehl verwendet siehe oben.
Ergebnis:
image

Nach dem der Vorgang erfolgreich war, habe ich gleich den folgenden Befehl, wie im Artikel beschrieben ausgeführt.

Add-SPDistributedCacheServiceInstance

Mit dem Ergebnis:
image
Diese Meldung besagt das der Server schon im Cluster vorhanden war, obwohl ich den Server ja eigentlich gelöscht hatte.

Ein Versuch den Dienst dann auf dem Server zu starten schlug auch wieder fehl.

 

Endlich die Lösung

Durch Unterstützung des Microsoft Supportes habe ich das Problem lösen können. (Hierbei noch einmal Danke an den MS Support)

Normalerweise soll der Distributed Cache nur über die PowerShell Befehle von SharePoint verwaltet werden. Da aber SharePoint den App Fabric Cache verwendet stehen uns noch mehr Befehle zur Verfügung.

Dafür muss die PowerShell Console der Caching Administration auf einem Server gestartet werden auf dem der Distributed Cache gestartet ist. (am besten gleich mit rechter Maustaste als Administrator starten)

In der Console habe ich dann den folgenden Befehl ausgeführt:

Get-CacheHost

Mit dem Ergebnis:
image

Obwohl ich den Server mit dem Befehl:
$s = Get-SPServiceInstance GUID
$s.delete()

zuvor gelöscht hatte, war der defekte Server immer noch in der CacheCluster-Config enthalten.

Um den Fehlerhaften Eintrag aus der Config zu bekommen, musste ich die Konfiguration des CacheClusters in eine XML-Datei exportieren:

Befehl:
Export-CacheClusterConfig –Path D:\Temp\CacheClusterConfig.xml

image

Danach habe ich die Datei mit dem Text-Editor geöffnet und den Fehlerhaften XML-Tag gelöscht.
Dabei muss der komplette Host-Tag des fehlerhaften Server gelöscht werden.
Mit Fehler:
image

Ohne Fehler:

image
Danach habe ich die Datei unter einem anderen Namen abgespeichert. Somit habe ich nicht die originale Config-Datei überschrieben.

Für den Import der Datei muss der Cache-Cluster noch gestoppt werden.
Wichtig: Hierfür einen Zeitraum außerhalb der Business Stunden wählen, da die Inhalte aus den anderen ClusterHosts gelöscht werden.

Stoppen des Clusters mit dem folgenden Befehl:

Stop-CacheCluster

image

Importieren der angepassten ConfigDatei:

Import-CacheClusterConfig –Path D:\Temp\CacheClusterConfig_Repair.xml

image

Starten des Cache Clusters:

Start-CacheCluster

image
Erfolgreicher Start der drei funktionierenden Cluster-Hosts

Hinzufügen des entfernten Server, hierfür muss die SharePoint-PowerShell Konsole auf dem zuvor entfernten Server geöffnet werden, um auf diesem Server den folgenden Befehl auszuführen:

Add-SPDistributedCacheServiceInstance

Mit diesem Befehl wurde der Server zum Cache Cluster hinzugefügt und erfolgreich gestartet.

Danach habe ich noch einmal geprüft ob die Cache Dienste auf allen Server ordnungsgemäß gestartet sind.

$instancename ="SPDistributedCacheService Name=AppFabricCachingService"
Get-SPServiceInstance  | ?{($_.Service.Tostring()) -eq $instancename} | select Typename, Status, id, server | ft -AutoSize

image

 

So das war´s, ich hoffe ich konnte einigen damit helfen.

 

Gruß

Mario

Kategorien:Allgemein

SPWakeUp3 starten durch ein bestimmtes Event

In meinem letzten Beitrag habe ich etwas über das Tool SPWakeUp3 und den automatischen Start über den Taskmanager geschrieben. Hierbei verwendete ich einen Zeitplan.

Seit Windows Server 2008 kann man auch über einen benutzerdefinierten XML Query Filter direkt auf ein Event reagieren.

Wie man diesen Filter anwendet, kann man in zahlreichen Artikeln im Netz lesen, ich habe zum Beispiel diese als Anregung verwendet:

Windows Event Viewer CUSTOM XML FILTER

Advanced XML filtering in the Windows Event Viewer

 

In dem Beispiel welches ich beschreibe möchte ich folgendes erreichen:

Da der Applicationpool für unsere Webanwendungen so eingestellt ist das er zu einem bestimmten Zeitpunkt neustartet, sollt die SPWakeUp3.exe nach dem auftreten dieses Events gestartet werden. Dabei soll aber nur auf ein bestimmten Applicationpool reagiert werden.

vorhandene Informationen:
- EventLog: System
- Quelle: WAS bzw. ProviderName: Microsoft-Windows-WAS
- Applicationpool Name: Test-AppPool
- EventID: 5076

Mit diesen Informationen kann man sich erst einmal im Eventlog den entsprechenden Filter zusammenstellen.
image

Danach werden die Einträge entsprechend gefiltert.
image

Bei diesen Filter werden alle Einträge mit der entsprechenden EventID angezeigt, um herauszubekommen wo der Name des Applicationpools steht. Ruft man am besten ein Event auf und sieht sich die XML-Struktur an.

image

Hier ist zu erkennen, dass der Applicationpool-Name unter dem XML-Tag “EventData” zu finden ist.

Da jetzt bekannt ist wo der Applicationpool-Name in dem Ereignis zu finden ist, muss nur noch der Filter um diese Eigenschaft ergänzt werden.
image

Hier der XML-Query:

<QueryList>
  <Query Id=”0″ Path=”System”>
    <Select Path=”System”>*[System[Provider[@Name=’Microsoft-Windows-WAS’] and (Level=4 or Level=0) and (EventID=5076)]] and *[EventData[Data[@Name=’AppPoolID’] and (Data =’Test-AppPool’)]]</Select>
  </Query>
</QueryList>

Wenn nach der Anpassung des Query´s das Eventlog betrachtet wird, ist zu erkennen das wirklich nur noch die Meldungen angezeigt werden welche dem XML-Query entsprechen.

Da das gewünschte Ergebnis erzielt wurde, kann der Query kopiert und in einen geplanten Task verwendet werden. Dazu wird die Aufgabenplanung geöffnet und es wird eine neue Aufgabe erstellt.

Bei der Erstellung des Triggers müssen dieses Mal die folgenden Einstellungen gewählt werden.
image

Auf “Neuer Ereignisfilter” klicken!

imageimage
XML und “Manuell bearbeiten” wählen und den kopierten Query in das Fenster kopieren.

Die anderen Task Einstellungen können dann individuell angepasst werden (siehe vorheriger Beitrag). Nach dem der Task abgespeichert wurde reagiert dieser auf den eingestellten Filter.

Es ist garantiert möglich noch weitere Filterparameter in den Query einzubauen, aber das sollte als ersten Überblick reichen.

Gruß
Mario

Kategorien:2010, Allgemein, SharePoint Schlagworte:

Automatisches Starten von SPWakeUp3

Kurz etwas zu SPWakeUp3

Wer kennt nicht das Problem, in der Nacht werden die Application-Pools wiederverwendet und am nächsten Morgen dauert der 1. Zugriff auf die SharePoint Anwendung ziemlich lange. Dann heißt es gleich: “das System ist zu langsam und man kann damit nicht arbeiten.”

Die automatische Wiederverwendung ist aber ein notwendiger Prozess um fehlerhafte Objekte oder auch s.g. Speicherlöcher aus dem Applicationpool-Prozess zu löschen.

Um nach einer solchen Wiederverwendung die SharePoint Seiten wieder “aufzuwecken”, gibt es das Tool SpWakeUp3 auf Codeplex.

Hier der Link: Codeplex SpWakeUp3

Diese Tool ruft im Hintergrund alle Webseiten einmal auf, wodurch die Seiten neu kompiliert und in dem Prozessspeicher abgelegt werden.

Das Tool muss nur in einem gewünschten Pfad im Fileverzeichnis abgelegt werden, dann kann es über die Kommandozeile oder über den Taskplaner  starten.

Die Parameter die diesem Toll mitgegeben werden können, kann man über durch den Parameter: spwakeup3.exe –help aufrufen.
image

So könnte die Ausgabe bei einem Start über die Kommandozeile aussehen.
image

Und so könnte die E-Mail dann noch aussehen:
image

 

Automatischer Start mit Taskplaner durch einen Zeittrigger

Um einen automatischen Start dieses Tools zu veranlassen ist es am einfachsten einen geplanten Task mit einer Zeitsteuerung zu starten.

Schritt 1: Aufgabenplanung starten und auf “Aufgabe erstellen” klicken
image

Schritt 2: Zeittrigger einrichten
image
In diesem Beispiel wir der Task stündlich jeden Tag ab 6:00 Uhr für 12 Stunden ausgeführt. Man kann natürlich auch mehrere Zeittrigger zu bestimmten Uhrzeiten einrichten, wenn der stündliche Start zu häufig ist.

Schritt 3: Aktion einrichten
image
In dem Fenster “neue Aktion” das Programm über “Durchsuchen” auswählen und zusätzlich noch die gewünschten Parameter in dem Argumente-Feld hinzufügen.

Die Werte in den beiden Registerkarten “Bedingungen” und “Einstellungen” kann man auf den Standardwerten lassen. Mit Ok alle Fenster schließen.
Noch den Benutzernamen und Kennwort für das ausführende Konto angeben, dann ist es geschafft.
image
Benutzername, Kennwort wird benötigt da die Aufgabe unabhängig von der Benutzeranmeldung ausgeführt werden soll.

Im nächsten Artikel beschreibe ich wie man den Task auf ein bestimmtes Event im Eventlog starten kann.

 

Bis dahin,

Gruß Mario

Kategorien:2010, Allgemein, SharePoint Schlagworte:
Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.