Partager via


Fonction CChkSGFiles.ErrCheckLogs

S’applique à : | Exchange Server 2003 Exchange Server 2007 | | Exchange Server 2010 Exchange Server 2013

Valide les fichiers journaux de tous les fichiers de base de données spécifiés dans la fonction ErrInit . Les journaux validés sont ceux qui existent dans le chemin d’accès et dont le nom de fichier journal de base à trois lettres est passé à ErrInit.

Vitual ERRErrCheckLogs 
(
        BOOL  * const pfOnlyUnnecessaryLogsCorrup,
    Const ULONGulFlags = NO_FLAGS
);

Parameters

pfOnlyUnnecessaryLogsCorrupt

Paramètre de sortie. Si la valeur est true, ce paramètre indique que des erreurs ont été détectées dans les fichiers journaux des transactions, mais que toutes ces erreurs ont été détectées dans les fichiers journaux qui ne sont pas nécessaires pour que la base de données passe à un état d’arrêt sans perte de données. Une valeur true retournée dans ce paramètre est valide uniquement lorsque ErrCheckLogs retourne errSuccess.

ulFlags

Paramètre d’entrée facultatif. Cette valeur est réservée pour une utilisation ultérieure. La valeur transmise par ce paramètre doit être 0 (zéro).

Valeur renvoyée

Code d’erreur de l’énumération ERR .

Il est important de se rappeler que cette fonction peut retourner errSuccess même lorsque des erreurs sont détectées dans les fichiers journaux. Par conséquent, quand ErrCheckLogs retourne errSuccess, l’application doit également vérifier le paramètre de retour pfOnlyUnnecessaryLogsCorrupt . Si pfOnlyUnnecessaryLogsCorrupts a la valeur true lorsque ErrCheckLogs retourne errSuccess, cela indique qu’une ou plusieurs erreurs ont été détectées, mais uniquement dans les fichiers journaux qui ne sont pas nécessaires pour mettre à jour la base de données.

Remarques

La fonction ErrCheckDbHeaders doit être appelée avant que la fonction ErrCheckLogs puisse être appelée.

Lorsque les fichiers journaux des transactions de base de données Exchange sont vérifiés, certains des fichiers journaux sont nécessaires pour amener les bases de données du groupe de stockage à un état d’arrêt propre sans perte de données, alors que d’autres fichiers journaux peuvent ne pas être nécessaires. La fonction ErrCheckLogs détermine les fichiers journaux les plus anciens et les plus récents nécessaires pour mettre à jour les bases de données.

La fonction ErrCheckLogs vérifie tous les fichiers journaux dans les chemins d’accès spécifiés qui ont également le nom de fichier de base à trois lettres spécifié, tel qu’il est passé à la fonction ErrInit .

Si aucune erreur n’est trouvée dans les fichiers journaux, ErrCheckLogs renvoie errSuccess.

Si l’un des fichiers journaux requis est endommagé, ErrCheckLogs retourne une erreur.

Si des erreurs sont détectées uniquement dans les fichiers journaux antérieurs aux premiers nécessaires, la fonction retourne errSuccess et définit le paramètre de retour pfOnlyUnnecessaryLogCorrupt sur true. L’application doit reconnaître qu’il existe des erreurs dans certains de ces anciens fichiers journaux et, si c’est le cas, elle peut alerter l’utilisateur. Dans tous les cas, ces erreurs ne doivent pas affecter l’intégrité globale de la base de données ou déterminer si la lecture des journaux d’activité réussit.

Si des erreurs sont détectées dans un fichier journal créé après le journal le plus ancien dont ErrCheckLogs détermine qu’il est nécessaire, la fonction retourne une erreur. L’erreur est retournée même si l’erreur de fichier journal a été trouvée dans un fichier journal qui a été généré plus tard que ce qui est nécessaire pour mettre à jour la base de données. Bien qu’il soit possible de rétablir l’état d’arrêt des bases de données à l’aide des fichiers journaux identifiés, les transactions spécifiées dans les fichiers journaux endommagés ultérieurement ne sont pas appliquées, ce qui entraîne une perte de données lors de la restauration de la base de données.

L’objet CChkSGFiles détermine si tous les fichiers journaux inscrits avec la fonction ErrInit ont été réellement vérifiés. Si tous les journaux d’activité n’ont pas été correctement vérifiés, la fonction ErrTerm retourne une erreur.

Si vous utilisez CHKSGFILES dans une application multithread, vous pouvez appeler la fonction ErrCheckLogs dans la partie multithread de l’application, mais vous ne pouvez l’appeler qu’une seule fois pour chaque objet CCheckSGFiles .

Conditions requises

Exchange 2013 inclut uniquement une version 64 bits de l’API CHKSGFILES.

Le compte sous lequel l’application s’exécute doit disposer d’autorisations d’accès en lecture à la base de données et aux fichiers journaux à vérifier.