Exchange eseutil /g integrity check shows corruption after eseutil /p repair. RRS feed

  • Question

  • I've posted this on another forum but it has yet to be resolved. I think this maybe a better forum for the post.  

    I have an Exchange 2003 standard server running on a Windows server 2003 enterprise edition. The specs are:

    Xeon CPU 2.80Ghz 16 gigs mem. The server shows 8 cores, 16 threads with hyper threading.

    Environment: Healthcare agency with 350 employees, approximately 350 mailboxes, Windows 7 computers, iPhones, iPads, Outlook and Webmail (OWA) all access this server for email.  

    The server has and still works flawlessly, recently we added a Barracuda mail archive server, to make sure we could retrieve emails for legal reasons. At the time the database had grown to 56 gigs. Since we had the archive setup we went on a mission to reduce the size of the DB by cleaning out users emails. This should be a simple eseutil /D priv1.edb, right? Wrong. After 4 days of reading about the notorious

    -2102 callbackNotResolved I applied the following:

    added the c:\program files\exchsrvr\bin to the path system variables
    modified the boot ini to /3gb /userva=3030
    copied the 5 files required and placed into a separate directory then ran eseutil.
    changed the heapdecommitt inside registry to 40000 hex
    applied hot fix KB 946111  

    Some of these were already set, others were applied. The hotfix appeared to resolve the callback jcb.dll error because the engineers at Microsoft apparently never though a server would exceed 2gigs of physical memory. I successfully ran eseutil /d and reduced the database to 34gigs. However my goal is to set the size limit to 30gigs as we have continued to delete/archive user’s emails to reduce the size to below the 30gig size.   

    This is where things go wrong. Now when I run the eseutil /d (Defrag) the callback to jcb.dll error reappears. Even though the previous eseutil /d reduced it from 56G to 34G with no errors. Next step was to run eseutil /g (integrity) and sure enough it’s corrupt. So we run eseutil /p (hardcore repair) and it states corruption is repaired. Rerun eseutil /g  still shows corrupted. Eseutil /d still encounters the -2102 callback failed to jcb.dll at 23%. If you click the ok button several hundred time it will eventually finish, however the Integrity check will still say corrupted.

    Additional info eseutil /mh show clean shutdown, not issues with backups or logs.

    The database still mounts, works fine, but the fact that I cannot reduce this database makes me believe there is a very dark day coming in the future.

    Any idea what to try next? I’m out of ideas.

    Thursday, March 5, 2015 4:13 PM

All replies

  • Hi Spinweb,

    Thank you for your question.

    What is the entire error when we run eseutil /d and /g?

    First, I suggest you send the entire error when you run command to for our troubleshooting. Because we will solve this case by the error information.

    In addition, we suggest you expand hard disk space.

    Notice: Exchange 2003 is out of support, we could upgrade Exchange to later version.

    If there are any questions regarding this issue, please be free to let me know. 

    Best Regard,


    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact

    Jim Xu
    TechNet Community Support

    Friday, March 6, 2015 3:09 AM