Utilisation de la base de données de files d’attentes sur les serveurs de transport

 

S’applique à : Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Dernière rubrique modifiée : 2007-08-21

Une file d'attente est un emplacement d'hébergement temporaire pour les messages attendant de passer à l'étape suivante du traitement. Chaque file d'attente représente un ensemble logique de messages traités par un serveur de transport Exchange dans un ordre spécifique. Il n'existe de files d'attente que sur les ordinateurs sur lesquels le rôle serveur de transport Hub ou Edge est installé.

Microsoft Exchange Server 2007 utilise une base de données ESE (Extensible Storage Engine) unique pour le stockage des messages en file d'attente. Précédemment appelé JET, le moteur ESE est une méthode qui définit un API de bas niveau pour les structures de base de données sous-jacentes dans Exchange Server.

Le scénarios suivants peuvent résulter en un serveur de transport Hub ou Edge ne répondant plus qui a une base de données de files d’attente contenant des messages non remis :

  • Un serveur de transport Exchange échoue lorsqu’il y a des messages non remis dans les files d’attente. De plus, vous ne pouvez pas reconnecter le serveur à temps.

  • Un serveur de transport Exchange a une base de données de files d’attente fragmentée qui devient tellement importante qu’elle consomme tout l’espace disponible sur le disque dur.

Vous pouvez déplacer la base de données de files d'attente et ses fichiers du journal des transactions associés dans un emplacement temporaire sur un serveur de transport Exchange cible, réparer la base de données de files d’attente, remplacer la base de données de files d’attente existante sur le serveur de transport Exchange cible, puis démarrer la base de données de files d'attente réparée sur le serveur de transport Exchange cible. Ce serveur de transport Exchange cible peut être situé dans votre organisation Exchange ou dans une forêt de service d’annuaire Active Directory différente.

Avant de commencer

Pour exécuter les procédures suivantes, vous devez utiliser un compte auquel a été délégué :

  • le rôle Administrateur de serveur Exchange.

Pour exécuter les procédures suivantes sur un ordinateur sur lequel le rôle serveur de transport Edge est installé, vous devez ouvrir une session en utilisant un compte membre du groupe Administrateurs local sur cet ordinateur.

Pour plus d'informations sur les autorisations, la délégation de rôles et les droits requis pour administrer Microsoft Exchange Server 2007, consultez la rubrique Considérations relatives aux autorisations.

Lorsque vous exécutez des tâches sur la base de données de files d’attente et ses fichiers associés, par exemple, déplacez la base de données de file d’attente sur le serveur cible ou exécutez une réparation et un défragmentation en mode hors connexion, assurez-vous que vous disposez des autorisations dans la liste suivante du répertoire dans lequel se trouve la base de données de files d’attente :

  • Service réseau : Contrôle total

  • Système : Contrôle total

  • Administrateurs : Contrôle total

Le serveur de transport Exchange cible que vous sélectionnez pour recevoir la base de données de files d'attente récupérée doit disposer des mêmes Services Packs Exchange 2007 et des mêmes mises à jour de sécurité que le serveur Exchange source.

Si cela est possible, sélectionnez un serveur de transport Exchange cible pour recevoir la base de données de files d'attente récupérée qui a le même rôle serveur de transport que le serveur source. Il est possible que vous rencontriez des comportements de remise des messages inattendus si l’une des conditions suivantes est remplie :

  • Vous démarrez la base de données de files d’attente récupérée sur un serveur de transport Exchange qui a un rôle serveur différent de celui du serveur source.

  • Vous démarrez la base de données de files d’attente récupérée sur un serveur de transport Exchange situé dans une forêt Active Directory différente.

Par exemple, les messages qui attendent d’être livrés dans une file d’attente de remise de boîte aux lettres peuvent ne pas avoir besoin d’être livrées à l’aide d’une file d’attente de remise distante. Des adresses anciennement distantes peuvent désormais être locales, et des adresses anciennement locales peuvent être distantes. Attendez-vous à ce que des messages apparaissent dans la file d’attente inaccessible. Vous devrez peut-être soumettre de nouveau manuellement des messages via le catégoriseur. Pour plus d'informations, consultez la rubrique Procédure de nouvelle soumission des messages dans des files d'attente.

Récupération d’une base de données de files d’attentes sur le serveur de transport Exchange cible

Les principales étapes de la procédure de récupération de base de données de files d'attente sont les suivantes :

  1. Déplacez la base de données de files d’attente dans un emplacement temporaire sur le serveur de transport Exchange cible.

  2. Effectuez une récupération de la base de données de files d’attente à l'aide des Utilitaires de base de données de serveur Exchange (Eseutil.exe).

  3. Exécutez une défragmentation hors connexion de la base de données de files d'attente à l'aide d'Eseutil.

  4. Préparez la base de données de files d’attente existante sur le serveur de transport Exchange cible pour son remplacement par la base de données de files d'attente récupérée.

  5. Démarrez la base de données de files d’attente réparée sur le serveur de transport Exchange cible.

Déplacement de la base de données de files d’attente dans un emplacement temporaire sur le serveur de transport cible

Par défaut, la base de données de files d'attente et les journaux des transactions sont situés dans C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue. L’emplacement de la base de données de files d’attente et l’emplacement du journal des transactions sont configurés dans le fichier de configuration d’application EdgeTransport.exe.config situé dans C:\Program Files\Microsoft\Exchange Server\Bin. Le paramètre QueueDatabasePath contrôle l’emplacement des fichiers de base de données et le paramètre QueueDatabaseLoggingPath contrôle l’emplacement des journaux de transactions.

La base de données de files d'attente contient les fichiers suivants :

  • Mail.que   Fichier de base de données de files d’attente.

  • Trn.chk   Fichier de point de contrôle.

Le journal des transactions contient les fichiers suivants :

  • Trn.log   Fichier du journal des transactions actuel.

  • Trntmp.log   Fichier du journal des transactions configuré ensuite, qui a été créé à l'avance.

  • Trnnnn.log   Autres fichiers du journal des transactions créés lorsque Trn.log atteint sa taille maximale spécifiée par le paramètre QueueDatabaeLoggingFileSize dans le fichier de configuration d’application EdgeTransport.exe.config. La valeur par défaut est 5 Mo.

  • Trnres00001.jrs   Fichier journal d’espace réservé.

  • Trnres00002.jrs   Fichier journal d’espace réservé.

  • Temp.edb   Bien qu’il ne s’agisse pas d’un fichier du journal des transactions, ce fichier de vérification de schéma de base de données de files d'attente est situé avec les fichiers du journal des transactions.

Déplacement de la base de données de files d'attente vers le serveur de transport Hub ou Edge

  1. Arrêtez le service de transport Microsoft Exchange du serveur de transport Exchange qui a la base de données de files d’attente affectée.

    • Tapez la commande suivante dans une invite de commandes ou dans Exchange Management Shell:

      Net Stop MSExchangeTransport
      
  2. Déplacez tous les fichiers de bases de données de files d'attente et du journal des transactions dans un répertoire temporaire du serveur de transport Hub ou Edge cible. Dnas cet exemple, ce répertoire sera le suivant : C:\QueueRecovery.

  3. Une fois que le serveur de transport Exchange 2007 affecté est réparé, une nouvelle base de données de files d’attente est créée lors du redémarrage du service de transport Microsoft Exchange. Cela peut se produire à tout moment après que vous avez fini de copier les fichiers de base de données de files d’attente dans le serveur de transport cible.

Pour plus d'informations sur les fichiers de base de données de files d'attente, consultez la rubrique Gestion de la base de données des files d'attente.

Exécution d’une récupération de la base de données de files d’attente à l’aide d’Eseutil

Avant d’essayer de démarrer la base de données de files d’attente sur le serveur de transport cible, vous devez utiliser Eseutil pour effectuer une récupération de base de données. La base de données de files d’attente utilisant l’enregistrement circulaire, vous ne pouvez pas relire d’anciens journaux de transactions dans la base de données à l’aide du mode Restauration d’Eseutil /C. Toutefois, vous pouvez effectuer une récupération de base de données à l’aide du mode Récupération d’Eseutil /R. Eseutil permet d’effectuer la maintenance et la réparation de bases de données de files d'attente en mode hors connexion.

Notes

Eseutil est situé dans C:\Program Files\Microsoft\Exchange Server\Bin. Ce répertoire est défini dans le chemin d’accès. Vous pouvez donc taper la commande sans spécifier le chemin d’accès complet.

Le processus de récupération lit le fichier de point de contrôle et valide les transactions non validées du journal des transactions dans la base de données de files d’attente. S’il n’existe aucun fichier de point de contrôle, la relecture commence par la plus ancienne entrée de fichier journal disponible dans le journal des transactions.

Exécution d’une récupération de base de données de files d’attente à l’aide d’Eseutil

  1. Dans une invite de commandes ou dans Exchange Management Shell, ouvrez le répertoire C:\QueueRecovery.

  2. Exécutez la commande suivante :

    Eseutil /r Trn /d. /8
    

    Trn indique le nom de base du fichier journal à trois caractères. /8 définit une taille de page de base de données de 8 kilo-octets pour une récupération plus rapide. /d. indique que la base de données à récupérer existe dans le répertoire en cours.

    Notes

    La récupération de base de donnée peut prendre longtemps pour une base de données de files d’attentes importante.

Pour plus d'informations sur l'utilisation d'Eseutil pour la récupération de base de données, consultez la rubrique Mode Récupération d'Eseutil /R.

Exécution d’un défragmentation hors connexion de la base de données de files d’attente à l’aide d’Eseutil

Après avoir exécuté un récupération de la base de données de files d’attente, il est recommandé d’exécuter également une défragmentation hors connexion de la base de données à l’aide du mode Défragmentation d’Eseutil /D pour la santé et la performance générale de la base de données de files d’attente. La défragmentation hors ligne d’une base de données ESE récupère l’espace disponible des bases de données vides et peut réduire la taille des fichiers de base de données.

Exécution d’une défragmentation hors connexion de la base de données de files d'attente à l'aide d'Eseutil

  1. Dans une invite de commandes ou dans Exchange Management Shell, ouvrez le répertoire C:\QueueRecovery.

  2. Exécutez la commande suivante :

    Eseutil /d mail.que
    

    Notes

    La défragmentation hors connexion de base de donnée peut prendre longtemps pour une base de données de files d’attentes importante.

Pour plus d’informations sur l’utilisation d’Eseutil pour la défragmentation hors ligne de base de données, consultez la rubrique Mode Défragmentation d'Eseutil /D.

Préparation de la base de données de files d’attente existante sur le serveur de transport Exchange cible pour son remplacement par la base de données de files d’attente récupérée.

Vous pourriez remplacer la base de données de files d'attente du serveur de transport Exchange cible à l’aide de la base de données de files d’attente récupérée. Toutefois, cela supprimerait tous les messages existants dans les files d’attente du serveur de transport Exchange cible. Pour démarrer la base de donnée de files d'attente récupérée en toute sécurité, vous devez commencer par procéder comme suit pour le serveur de transport Exchange cible :

  1. Interrompez le flux des nouveaux messages dans les files d’attentes et autorisez la remise des messages existants.

  2. Surveillez les files d’attentes de remise de boîtes aux lettres et les files d’attente de remise distante jusqu’à ce que tous les messages soient remis.

  3. Resoumettez ou suspendez et exportez tous les messages de la file d’attente inaccessible que vous voulez enregistrer.

  4. Reprenez ou exportez tous les messages des files d'attente de messages incohérents que vous voulez enregistrer.

  5. Modifiez le délai d’expiration du message sur le serveur de transport Exchange de manière à ce que les messages de la base de données de files d'attente récupérée soient préservés.

Interruption du flux des nouveaux messages dans les files d’attente du serveur de transport Exchange cible et autorisation de remise des messages existants

  • Dans une invite de commandes ou dans Exchange Management Shell, exécutez la commande suivante :

    Net Pause MSExchangeTransport
    

Surveillance des files d’attente de remise de boîtes aux lettres et des files d’attente de remise distante du serveur de transport Exchange cible jusqu’à ce que tous les messages soient livrés

  • Utilisez l’afficheur des files d’attente ou la cmdlet Get-Queue d’Exchange Management Shell pour surveiller les files d’attente de remise du serveur de transport Exchange cible. Attendez qu’il ne reste aucun message dans aucune des files d’attente de remise du serveur, c’est-à-dire que le nombre de messages soit égal à 0.

Resoumission ou suspension et exportation des messages de la file d’attente inaccessible du serveur de transport Exchange cible que vous voulez enregistrer

  1. Pour resoumettre des messages qui existent dans la file d’attente inaccessible, exécutez la commande suivante dans Exchange Management Shell sur le serveur de transport Exchange cible :

    Retry-Queue -Identity "Unreachable" -Resubmit $True
    
  2. Utilisez l’Afficheur des files d’attente pour suspendre les messages que vous voulez exporter depuis la file d’attente inaccessible.

  3. Pour exporter tous les messages suspendus de la file d'attente inaccessible vers un répertoire, avec nommage automatique des fichiers de messages à l’aide du format InternalMessageID.eml, exécutez la commande suivante dans Exchange Management Shell :

    Get-Message -Queue "Unreachable" | Export-Message -Path "<ExistingLocalDirectory>"
    

Pour plus d'informations la re-soumission de messages, consultez la rubrique Procédure de nouvelle soumission des messages dans des files d'attente.

Pour plus d'informations sur la suspension de messages, consultez la rubrique Procédure de suspension de messages.

Pour plus d'informations sur l'exportation de messages, consultez la rubrique Procédure d'exportation de messages à partir de files d'attente.

Reprise ou exportation des messages de la file d’attente des messages incohérents du serveur de transport Exchange cible que vous voulez enregistrer

  1. Pour reprendre les messages de la file d'attente des messages incohérents, exécutez l'une des étapes suivantes :

    • Dans l’Afficheur des files d’attente, sélectionnez la file d’attente des messages incohérents, sélectionnez un message et, dans le volet Actions, sélectionnez Reprendre.

    • Dans Exchange Management Shell, exécutez les commandes suivantes :

      Get-Message -Queue "Poison" | ft Identity
      Resume-Message <IdentityofPoisonMessage>
      
  2. Pour exporter tous les messages suspendus de la file d'attente des messages incohérents vers un répertoire, avec nommage automatique des fichiers de messages à l’aide du format InternalMessageID.eml, exécutez la commande suivante dans Exchange Management Shell :

    Get-Message -Queue "Poison" | Export-Message -Path "<ExistingLocalDirectory>"
    

Notes

La file d'attente des messages incohérents contient les messages identifiés comme dangereux pour le système Exchange 2007 après une défaillance du serveur. Les messages peuvent être vraiment dangereux par leur contenu ou leur format ou peuvent être victimes d’un agent mal écrit ayant causé l’échec du serveur Exchange pendant le traitement des messages soi-disant incorrects. Si vous n'êtes pas sûr de la fiabilité des messages se trouvant dans la file d'attente des messages incohérents, exportez-les dans des fichiers afin de pouvoir les examiner. Si vous décidez de supprimer des messages de la file d’attente des messages incohérents, supprimez-les sans envoyer de notification d'échec de remise (NDR). La notification d'échec de remise peut contenir le contenu du message d'origine. Les messages dans la file d'attente des messages incohérents sont déjà suspendus. Vous n’avez donc pas à les suspendre avant de les exporter. Vous ne pouvez pas soumettre de nouveau la file d'attente des messages incohérents en utilisant la cmdlet Retry-Queue avec le paramètre Resubmit. Pour soumettre de nouveau les messages de la file d'attente des messages incohérents, vous devez utiliser l'Afficheur des files d'attente pour reprendre les messages ou la cmdlet Resume-Message.

Pour plus d'informations sur la reprise de messages, consultez la rubrique Procédure de reprise de messages.

Modification du délai d’expiration du message sur le serveur de transport Exchange cible de manière à ce que les messages de la base de données de files d'attente récupérée soient préservés

  • Exécutez la commande suivante dans Exchange Management Shell :

    Set-TransportServer -MessageExpirationTimeout <LongerTimeOutIntervalIndd.hh:mm:ssFormat>
    

    Par défaut, tous les messages non remis sont retournés à l’expéditeur avec une notification d'échec de remise et supprimés de la file d'attente. Si l'une des conditions suivantes est remplie, vous devez augmenter l’intervalle du délai d’expiration des messages :

    • La base de données de files d’attente que vous essayez de récupérer est déconnectée depuis plus de 2 jours.

    • La base de données de files d'attente ne termine pas la livraison des messages dans les deux jours après sa récupération.

    Cela empêche la suppression des messages immédiatement après le démarrage de la base de données de files d'attentes ou lorsque la base de donnée redémarrée remet ses anciens messages.

Pour plus d'informations sur l'expiration des messages, consultez la rubrique Gestion des intervalles de nouvelle tentative de message, de nouvelle soumission et d’expiration.

Démarrage de la base de donnée de files d’attentes réparée sur le serveur de transport Exchange cible

Démarrage de la base de données de files d’attente récupérée sur le serveur de transport Exchange cible

  1. Dans une invite de commandes ou dans Exchange Management Shell, exécutez la commande suivante sur le serveur de transport Exchange cible :

    Net Stop MSExchangeTransport
    
  2. Remplacez tous les fichiers de base de données de files d'attentes et les fichiers du journal des transactions vides existants sur le serveur de transport Exchange cible à l’aide de tous les fichiers de « C:\QueueRecovery ». Par défaut, la base de données de files d'attente et les journaux des transactions sont situés dans C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue.

  3. Dans une invite de commandes ou dans Exchange Management Shell, exécutez la commande suivante :

    Net Start MSExchangeTransport
    

Tâches consécutives à la récupération

Lorsque la base de données de files d’attente récupérée est démarrée sur le serveur de transport Exchange cible, la transmission des messages doit commencer. La liste suivante décrit les problèmes potentiels que vous pouvez rencontrer :

  • Soyez prêts à gérer les messages de la file d’attente des messages incohérents si la base de données de files d'attente récupérée est issue d'un serveur Exchange 2007 ayant échoué. Vous devez décider pour chaque message de la file d’attente des messages incohérents si le message a vraiment causé l’échec du serveur Exchange 2007 ou s’il a été mis inutilement dans la file d’attente des messages incohérents. Vous pouvez décider de reprendre le message ou de l’exporter pour l’examiner. Si vous n’êtes pas certain du niveau de sécurité d'un message de file d'attente des messages incohérents, exportez-le dans un fichier de manière à pouvoir l'examiner. Si vous décidez de supprimer des messages de la file d'attente des messages incohérents, supprimez-les sans envoyer de notification d'échec de remise. La notification d'échec de remise peut contenir le contenu du message incohérent.

  • Soyez prêt à gérer les messages de la file d’attente inaccessible et des files d’attente de remise qui sont bloqués à l’état Nouvelle tentative. Vous devez resoumettre ces messages manuellement.

  • Si vous décidez de récupérer les messages ayant des problèmes de remise, vous devez décider s’il faut envoyer ou pas une notification d'échec de remise lors de la suppression des messages. Si vous supprimez les messages et vous envoyez une notification d'échec de remise, les messages de notification d'échec de remise eux-mêmes requièrent une remise. De plus, ils peuvent eux-mêmes souffrir de problèmes de livraison. Vous pouvez décider de supprimer les messages problématiques sans envoyer de notification d'échec de remise. Pour plus d'informations sur la suppression d'un message, consultez la rubrique Procédure de suppression de messages de files d'attente.

  • Il est conseillé de décider si vous voulez conserver de manière permanente la base de données de files d’attente récupérée sur le serveur de transport Exchange cible ou si vous voulez le remplacer par une nouvelle base de données de files d'attente une fois que tous les messages bloqués ont été remis. Dès que vous démarrez la base de données de files d'attente récupérée, de nouveaux messages entrent dans la file d'attente dans le cadre de l'activité de remise des messages régulière du serveur de transport Exchange. Si vous décidez de remplacer la base de données de files d’attente à l’aide d’une nouvelle copie, procédez comme suit :

    1. Interrompez le service de transport Microsoft Exchange pour permettre aux messages existants d’être complètement drainés. Pendant cette interruption, aucun nouveau message ne sera accepté.

    2. Arrêtez le service de transport Microsoft Exchange.

    3. Supprimez tous les fichiers de base de données de files d’attentes et les fichiers du journal des transactions.

    4. Démarrez le service de transport Microsoft Exchange.

Pour plus d'informations

Pour plus d'informations, consultez les rubriques suivantes :