Microsoft KB Archive/248406

From BetaArchive Wiki

Article ID: 248406

Article Last Modified on 10/27/2006



APPLIES TO

  • Microsoft Exchange 2000 Server Standard Edition
  • Microsoft Exchange Server 5.5 Service Pack 3



This article was previously published under Q248406


SUMMARY

The Esefile utility is a new utility that is included with Microsoft Exchange Server version 5.5 Service Pack 3 (SP3) and Microsoft Exchange 2000 Server. It is in the Support folder on the Exchange 5.5 SP3 CD and in the Support\Utils\I386 folder on the Exchange 2000 CD. There are separate versions for the Intel and Alpha platforms. You can use this utility on Microsoft Exchange Server 5.0 databases, on Exchange 5.5 databases, and on Exchange 2000 databases.

The command line for the Esefile utility is:

esefile [/c source destination] [/x file] [/s file] [/d file page number]


/c copies source to destination
/s Ese.dll format checksum
/x Edb.dll format checksum
/d dumps a page from a file


MORE INFORMATION

Note The Esefile utility is system insensitive.

There are two main uses for this utility: to copy files, and to test the checksums on an Exchange database.

Copy files

To copy files by using the Esefile utility, type the following command:

esefile /c <source> <destination>


Notes

  • Source and destination must be a full path plus the file name, and the destination path must already exist. However, the destination file name does not have to be the same as source. The following commands are examples:
    • esefile /c c:\notes\notes.txt d:\newnotes\notes.txt
    • esefile /c c:\notes\notes.txt d:\newnotes\newnotes.txt

    Important If you do not specify the destination file name together with the path when you copy an Exchange database file, you receive the following error message:

    Copying c:\program files\exchsrvr\mdbdata\priv1.edb to c:\Foldername

    FAILURE: CreateFile: Access is denied.

    To resolve this issue, specify the full source path and the file name together with the full destination path and the file name when you use the Esefile command to copy a file. For example, to copy an Exchange database file, type a command that is similar to the following, and then press ENTER:

    esefile /c "c:\program files\exchsrvr\mdbdata\priv1.edb" "c:\new folder\priv1.edb"

  • Only one instance of Esefile should be run at a time.
  • To copy files, use the version of Esefile that is available with Exchange 5.5 SP4 or on the Exchange 2000 CD. If you use the version of Esefile that is available with Exchange 5.5 SP3, the destination cannot be a mapped drive.

This method of copying files is optimized for large files. The files are opened in uncached mode. Therefore, you can copy files that are larger than the files that you can copy if they are opened in cached mode. However, there are some limitations of this method:

  • Wildcard characters are not accepted.
  • You can only copy one file at a time.
  • The destination file cannot not be on a network drive.
  • File time stamps are not preserved.

The esefile /c command can copy any file, not just Exchange databases. File copying is very fast when you use the esefile command; on large files (over 100 megabytes) this method can be two times as fast as the Copy/Xcopy utility.

The esefile /c command can copy a file of any size. (The utilities in Microsoft Windows Server NT such as Copy/Xcopy make changes to the files by caching the page pointer. The size of files that these utilities can copy depends on the available amount of contiguous non-paged pool memory in the system.)

Test the checksums on an Exchange database

This command verifies the page-level integrity of the database. It runs at a speed of approximately 1 gigabyte (GB) per minute. To test the checksums on an Exchange database, type one of the following commands, depending on your situation:

  • esefile /s database (ESE format Exchange Server 5.5 and Exchange 2000)
  • esefile /x database (EDB format Exchange Server 5.0)

Note If you use the /x switch on an ESE-format database or the /s switch on an EDB-format database, a checksum error message is logged on every page. The following example shows a database that has the correct checksum:

Checksumming


          0    10   20   30   40   50   60   70   80   90  100
          |----|----|----|----|----|----|----|----|----|----|
          ...................................................

          117250 pages seen
          0 bad checksums
          457 uninitialized pages
          0 wrong page numbers

          esefile completes successfully after 28 seconds
                    

The following example shows a database that has an incorrect checksum:

Checksumming


          0    10   20   30   40   50   60   70   80   90  100
          |----|----|----|----|----|----|----|----|----|----|
          ...................................................         

          ERROR: page -1 checksum failed ( 0x39215350 / 0x291fed56 )
          ERROR: page 0 checksum failed ( 0xd7698bbc / 0x6a5d128b )

          117250 pages seen
          2 bad checksums
          457 uninitialized pages
          0 wrong page numbers

          esefile fails after 28 seconds
                    

In this example, page -1 and page 0 did not pass the checksum, and when you try to start the information store, it does not start and logs the following error message in the application event log:

Event ID 5000 Source MSExchangeIS
Unable to initialize the Microsoft Exchange Information Store service.
Error Non-database file or corrupted database.

For additional information, click the following article numbers to view the articles in the Microsoft Knowledge Base:

151789 Error -1018 (JET_errReadVerifyFailure)



Additional query words: XADM exch2kp2w

Keywords: kberrmsg kbinfo KB248406