Nombre Maximum de Logs De Transactions

J'ai rencontré récemment différentes productions bloquées par cet événement :

Toutes les bases Exchange d'un groupe de stockage s'arrêtent et cet événement apparait dans le log d'application du serveur :

Event ID: 9518
Event Type: Error
Event Source: MSExchangeIS
Event Category: General
Description: Error 0xfffffddc starting Storage Group Path_of_Storage_Group on the Microsoft Exchange Information Store. Storage Group - Initialization of Jet failed.

Ce problème est bien connu et est référencé dans cet article de Microsoft https://support.microsoft.com/kb/830408.

Il est du au fait qu'on ait atteint le nombre maximum de log de transactions pour la base.

Si vous rencontrez actuellement ce problème :

Pour vous assurer que vous avez bien ce problème , vérifiez que vous avez bien dans l'événement 9518 le code 0xfffffddc qui signifie JET_errLogSequenceEnd.
S'il s'agit d'un autre code , vous rencontrez un autre problème que celui que je décris ici.

Si c'est bien le cas, vérifiez que chacune des bases du groupe de stockage s'est arrêtée correctement.
Pour faire cela :
    - lancez une commande cmd
    - allez dans le répertoire des binaires d'exchange (par exemple c:\program files\exchsrvr\bin )
    - lancez la commande eseutil /mh <nomdelabase> ( par exemple eseutil /mh "c:\program files\exchsrvr\mdbdata\priv1.edb"). La ligne State doit afficher Clean Shutdown.

Si toutes les bases du groupe de stockage sont bien en Clean Shutdown , vous déplacez tous les logs de transactions de ce groupe de stockage dans un répertoire de sauvegarde en utilisant un couper coller de sorte à ce qu'il ne reste plus de logs dans le répertoire de transaction du groupe de stockage.
Puis vous remontez les bases , une par une et l'incident est résolu.

Il est d'ailleurs important de faire une sauvegarde complète du groupe de stockage juste après cette manipulation car comme un nouveau jeux de logs a été généré , ces nouveaux logs de transactions ne peuvent pas être rejoués sur la base sauvegardée la veille.

Pour éviter de rencontrer ce problème :
Il y a un événement qui apparait quelques jours avant qu'on ait épuisé le nombre maximum de logs de transactions et qui vous permet donc de planifier l'opération et d'éviter cet arrêt brutal de production.
Voici l'événement :

Event ID : 514
Event Type: Warning
Source : ESE

Descriptif : log sequence numbers for this instance have almost been completely consumed. The current log generation is 1047950 which is approching for the maximum log generation of 1048559.

Cet événement est normalement surveillé par SCOM ( System Center Operation Manager).
Si le serveur Exchange est surveillé par SCOM et que le management pack Exchange 2003 ( ou le mangement pack Exchange 2007 s’il s’agit d’un serveur Exchange 2007) et bien installé sur le serveur SCOM , une alerte doit vous avertir de l’événement et vous éviter l’arrêt de production.

Si vous utilisez un autre outil de surveillance , il faudrait s’assurer qu’il surveille bien cet événement 514.

Une bonne façon de s’en assurer est de le tester en générant un événement factice 514 et en regardant si votre outil de surveillance vous reporte une alerte.

Pour créer l’événement , sous Windows 2003 , lancez un cmd et tapez la commande :

eventcreate /L APPLICATION /t Warning /ID 514 /D “test de monitoring – event 514”

Une autre méthode est d’utiliser Powershell ( cette méthode est plutôt pour Exchange 2007 où Powershell est déjà installé ):

$log = New-Object System.Diagnostics.EventLog
$log.set_log("Application")
$log.set_source("ESE")
$log.WriteEntry('Test event 514 monitoring',"Warning",514)