Topic Last Modified: 2005-11-18

The Microsoft® Exchange Server Analyzer Tool verifies the health of the transaction log files for each storage group by checking the log files on the server disk. To find the location of the log files, the Exchange Server Analyzer queries the Active Directory® directory service. For each storage group object (class msExchStorageGroup), the file path to the log files is stored in the msExchESEParamLogFilePath attribute.

Transaction log file names include sequential hexadecimal numbers that identify the sequence of the log files. For example, the first log file for the default First Storage Group is named E0000001.log, the second is E0000002.log, and so on. The sequence can go as high as E00FFFFF.log. Exchange can create up to 1,030,000 unique log files. However, when Exchange reaches the end of the sequence, the stores in the affected storage group will no longer mount if they are dismounted after the limit is reached. If left mounted, the store will not dismount the databases even though no Jet operations can occur. Normally, Exchange can run for several years before reaching this limit.

You will see this message as a warning if the specified server has used more than 950,000 transaction log files.

You will see this message as an error if the specified server has used more than 1,020,000 transaction log files.

To allow the store to properly dismount the databases if this limit is reached, a fix has been included in Exchange Server 2003 Service Pack 1. A post-Service Pack 3 hotfix is available for Exchange 2000 Server, as described in the Microsoft Knowledge Base article 830408, "Exchange database stores remain mounted although all transaction logs that are available to a storage group have been used" (http://go.microsoft.com/fwlink/?LinkId=3052&kbid=830408).

If Exchange has not yet reached the 1,030,000 transaction log limit, perform a full online backup of the server as soon as possible. For more information about performing a full online backup of the Exchange stores, see the Exchange 2003 Disaster Recovery Operations Guide (http://go.microsoft.com/fwlink/?LinkId=47570).

If Exchange has reached this limit, you must move all existing transaction logs to another location. After you do this, a new sequence of log files that starts with 0x00001 will be generated. To ensure that the Exchange store will dismount the databases properly, you must also apply the appropriate fix for your version of Exchange.

Note:
Before you move the transaction logs, you must verify that all databases in the storage group are in a Clean Shutdown state.
Important:
After performing the procedure below, all previous backups will be invalidated. This does not mean that the backups cannot be restored. However, the backups can no longer be rolled forward with additional transaction logs. If you must restore a previous backup after you remove the transaction logs, you will be able to restore data only up to the time that the new log generation was created.

To resolve this problem

  1. For Exchange Server 2003, install Service Pack 1, available at the Exchange Server downloads Web site (http://go.microsoft.com/fwlink/?LinkId=29090).

    -or-

    For Exchange 2000 Server, obtain and install the hotfix referenced in the Microsoft Knowledge Base article 830408, "Exchange database stores remain mounted although all transaction logs that are available to a storage group have been used" (http://go.microsoft.com/fwlink/?LinkId=3052&kbid=830408).

  2. In the storage group that has run out of transaction log files, dismount all databases. To do this, follow these steps:

    1. Open Exchange System Manager.

    2. Expand Administrative Groups, expand <AdministrativeGroupName>, expand Servers, expand <ServerName>, and then expand <StorageGroupName>.

    3. Right-click the first store in this storage group, and click Dismount Store. Repeat this step for each store in this storage group.

  3. Verify that each database in the storage group is in a Clean Shutdown state. To do this, follow these steps:

    1. In Exchange System Manager, right-click the first store in the storage group that has run out of transaction log files, and click Properties.

    2. Click the Database tab, and then note the paths and the file names of the database files in the Exchange database box and in the Exchange streaming database box. Each Exchange database is composed of a paired set of files that have the .edb file name extension and the .stm file name extension. Repeat this step for each store in the storage group.

    3. At a command prompt, change the directory to the Exchange Server bin folder. For example, change the directory to C:\Program Files\Exchsrvr\bin.

    4. Type Eseutil /mh DatabaseFileName, and then press Enter. Repeat this step for each database in the storage group. This command will display the database file header. The header will contain one of the following two lines: State: Clean Shutdown or State: Dirty Shutdown.

  4. If the header contains the line State: Dirty Shutdown, you must manually recover the database before you remove the log files. To do this, follow these steps:

    1. In Exchange System Manager, right-click the storage group that has run out of transaction log files, and click Properties.

    2. Click the General tab, and then note the paths of the transaction logs in the Transaction log location box.

    3. Note the path of the checkpoint file in the System path location box.

    4. At a command prompt, change the directory to the Exchange Server bin folder.

    5. Type the following command, and press Enter: Eseutil /r 3-CharacterLogfileBaseName /lDirectory:\LogfilePath /sDirectory:\CheckpointFilePath.

      Note:
      Do not type a space between the option switch and the directory paths. If you make a typographical error in the paths that are listed in the command, recovery may fail. To avoid this behavior, you can copy the checkpoint file to the transaction log file folder. At a command prompt that is defaulted to the log file directory, run the command Eseutil /r 3-CharacterLogfileBaseName. Because the /l switch and the /s switch default to the current directory, you do not have to provide the paths of the log files or the paths of the checkpoint files.
    6. After recovery has completed, verify that all database files are now in a Clean Shutdown state before you move the transaction log files and the checkpoint files. If you move the log files when a database is in a Dirty Shutdown state, you will not be able to restart the database. If you cannot recover all databases to the Clean Shutdown state, contact Microsoft Product Support Services for more information.

  5. In Exchange System Manager, right-click the storage group that has run out of transaction log files, and click Properties.

  6. Click the General tab, and then note the paths of the transaction logs in the Transaction log location box.

  7. Note the path of the checkpoint file in the System path location box.

  8. Move the transaction log files and the checkpoint file to another location. The log files have the .log file name extension and the checkpoint files have the .chk file name extension.

  9. In Exchange System Manager, right-click the first dismounted store in the storage group, and click Mount Store.

  10. Repeat this step for each store in the storage group. The log file sequence is now reset on the storage group.

  11. Perform a full backup of all the databases on the storage group.

For more information about service packs for Exchange Server, see the Exchange Server Web site (http://go.microsoft.com/fwlink/?LinkId=21573).