Dienstag, 29. Dezember 2015

permanenter Status Wechsel des Content Index State

Hallo zusammen,

mal wieder ein seltsames Phänomen, welches sich aufzuschreiben lohnt. Ein Exchange 2013 (CU9) Multi-Role Server welcher Mitglied einer DAG ist, hatte permanent Probleme mit dem Content Index State der unterschiedlichsten Datenbanken. Durch die Bank war der Content Index State mal "healthy" und manchmal "failed".

Geprüft habe ich den jeweiligen Stauts mit folgenden PowerShell Befehl:
Get-MailboxDatabaseCopyStatus | FL Name,*Index*

Das Eregebnis war dann sehr aufschlussreich:

Name                         :                Mailboxdatabase01
ContentIndexState            :         Failed
ContentIndexErrorMessage     :  An internal error occurred for the database or its index.
ContentIndexErrorCode        :    2

Gleichzeitig wurde im Eventlog folgender Fehler (Event-ID 1009, MSExchangeFastSearch) protokolliert:

The indexing of mailbox database Mailboxdatabase01 encountered an unexpected exception. Error details: Microsoft.Exchange.Search.Core.Abstraction.OperationFailedException: The component operation has failed. ---> Microsoft.Exchange.Search.Core.Abstraction.OperationFailedException: The component operation has failed. ---> Microsoft.Exchange.Search.Fast.FastDocumentTimeoutException: The Content Submission Service returned failure for the document: Document timeout expired
. ---> System.TimeoutException: Document timeout expired

   --- End of inner exception stack trace ---
   at Microsoft.Exchange.Search.Fast.FastFeeder.EndSubmitDocument(IAsyncResult asyncResult)
   at Microsoft.Exchange.Search.Mdb.RetryFeeder.DocumentCompleteCallback(IAsyncResult asyncResult)
   --- End of inner exception stack trace ---
   at Microsoft.Exchange.Search.Core.Common.Executable.EndExecute(IAsyncResult asyncResult)
   at Microsoft.Exchange.Search.Engine.SearchFeedingController.ExecuteComplete(IAsyncResult asyncResult)
   --- End of inner exception stack trace ---
   at Microsoft.Exchange.Search.Core.Common.Executable.EndExecute(IAsyncResult asyncResult)
   at Microsoft.Exchange.Search.Engine.SearchRootController.ExecuteComplete(IAsyncResult asyncResult)

Das Re-Seeding des Content Index, was ich als ersten getestet hatte, brachte leider nicht wirklich den Erfolg, Erst mit dem Anlegen einer globalen Sicherheitsgruppe namens "ContentSubmitters" konnte das Problem behoben werden. Sobald die Gruppe angelegt ist, in der Registerkarte "Sicherheit" die Benutzer "NetworkService" und "Administrators" die Berechtigung "Vollzugriff" zuweisen. Im Anschluss müssen die beiden folgenden Dienste neugestartet werden:

Restart-Service MSExchangeFastSearch
Restart-Service HostControllerService

Danach klappts auch wieder mit dem Content Index State.

Viele Grüße, Jens