Microsoft KB Archive/316622

= Event sinks do not function correctly if the SystemMailbox{GUID} mailbox is absent from a mailbox store in Exchange Server 2003 or in Exchange 2000 Server =

Article ID: 316622

Article Last Modified on 10/25/2007

-

APPLIES TO


 * Microsoft Exchange Server 2003 Enterprise Edition
 * Microsoft Exchange Server 2003 Standard Edition
 * Microsoft Exchange 2000 Server Standard Edition

-



This article was previously published under Q316622



SYMPTOMS
If the SystemMailbox{ } mailbox is absent from a mailbox store in Microsoft Exchange Server 2003 or in Microsoft Exchange 2000 Server, event sinks do not function correctly. Additionally, the following Error event may be logged:

Event Type: Error

Event Source: EXOLEDB

Event Category: (3)

Event ID: 116

Description: Microsoft Exchange OLEDB was unable to initialize event system correctly. Support for store event may have been disabled. HRESULT = 0x8004010f.

Sometimes event ID 116 may be logged with error code 0x8007007e. In this scenario, the Error event is similar to the following:

Event Type: Error

Event Source: EXOLEDB

Event Category: (3)

Event ID: 116

Description: Microsoft Exchange OLEDB was unable to initialize event system correctly. Support for store event may have been disabled. HRESULT = 0x8007007e.

Important The use of the GUID throughout this article refers to GUIDs that are in the following format:

Make sure that the LDP utility is configured to have the Value Parsing option set to String so that the GUID values appear as they appeared earlier. To verify or change this setting, follow these steps. Warning If you use the ADSI Edit snap-in, the LDP utility, or any other LDAP version 3 client, and you incorrectly modify the attributes of Active Directory objects, you can cause serious problems. These problems may require you to reinstall Microsoft Windows 2000 Server, Microsoft Windows Server 2003, Microsoft Exchange 2000 Server, Microsoft Exchange Server 2003, or both Windows and Exchange. Microsoft cannot guarantee that problems that occur if you incorrectly modify Active Directory object attributes can be solved. Modify these attributes at your own risk.
 * 1) In the LDP utility, click the Options menu, and then click General.
 * 2) In the General Options dialog box, make sure that String is selected under the Value Parsing option.



CAUSE
This issue may occur if one or more of the following conditions are true:
 * The SystemMailbox mailbox is missing from a mailbox store.
 * The SystemMailbox exists. However, the SystemMailbox is not associated with an Active Directory account.
 * The SystemMailbox mailbox is missing. Additionally, there is no Active Directory account for the SystemMailbox.
 * The exodbprx.dll component is not registered in the registry.

The SystemMailbox{ } mailbox object is linked to a disabled Active Directory user object that you can locate in the Microsoft Exchange System Objects container of Active Directory. If the following conditions are true, the mailbox is automatically re-created in the mailbox store when the mailbox store is mounted:
 * The disabled user account exists and is correctly configured.
 * The SystemMailbox{ } mailbox is absent.

However, if the Active Directory user account for the SystemMailbox{ } is damaged or absent, dismounting and then remounting the mailbox store may have no effect.



RESOLUTION
To resolve this issue, re-create the SystemMailbox user object by using one of the methods in the &quot;Re-create SystemMailbox&quot; section. If you receive error code 0x8007007e in event ID 116, you must also perform the steps that are described in the &quot;Register the exodbprx.dll component&quot; section.

Method 1
Important Before you start this procedure, make sure that no one is logged on to a mailbox from any client. Additionally, make sure that no one logs on while you perform this procedure. These actions prevent new user connections or incoming e-mail from creating mailboxes in the temporary store between steps 6 and 7. You may want to consider unplugging the server from the network to prevent people from accidentally logging on.  In Exchange System Manager, locate the following folder:

First Administrative Group/Servers/ /Protocols/SMTP

The Default SMTP Virtual Server is in the SMTP folder. Right-click the Default SMTP Virtual Server, and then click Stop to prevent mail flow while the temporary store is up. Stop the Microsoft Exchange Information Store service. From Windows Explorer, rename the Mdbdata folder that holds the database. Additionally, rename the folder that contains your log files. Then, create a new, empty Mdbdata folder. Start the Microsoft Exchange Information Store service. In Exchange System Manager, mount only the mailbox store. You receive a warning that indicates that you are mounting a blank store. This is expected. Accept the warning. After the mailbox store mounts, verify that the SystemMailbox object is created in the Mailboxes folder. The account for the SystemMailbox is typically re-created in the Microsoft Exchange System Objects folder in the Active Directory Users and Computers snap-in.</li> Stop the Microsoft Exchange Information Store service.</li> In Windows Explorer, change the name of the temporary Mdbdata folder that you created in step 4. Then, change the name of the original Mdbdata folder to Mdbdata .</li> Start the Microsoft Exchange Information Store service, and then start the dependant services.</li> Verify that the mailbox store and the public folder store mount as expected. The new SystemMailbox object and the old, disconnected SystemMailbox object should be in the Mailboxes folder. The old, disconnected SystemMailbox object is deleted after the deletion-settings period expires.</li> Start the Default SMTP Virtual Server that you stopped in step 2.</li></ol>

Method 2

 * 1) Create a new mailbox store on the server.
 * 2) Move all mailboxes from the original store to the new mailbox store that you created in step 1.
 * 3) Remove the original mailbox store.

This new mailbox store has a SystemMailbox object that is created after the new mailbox store has mounted for the first time. However, if the store that you want to replace contains many mailboxes, or if the server is running Exchange 2000 Server Standard Edition or Exchange Server 2003, this method may not be sufficient.

How to manually re-create the SystemMailbox user object
Warning If you use the ADSI Edit snap-in, the LDP utility, or any other LDAP version 3 client, and you incorrectly modify the attributes of Active Directory objects, you can cause serious problems. These problems may require you to reinstall Microsoft Windows 2000 Server, Microsoft Windows Server 2003, Microsoft Exchange 2000 Server, Microsoft Exchange Server 2003, or both Windows and Exchange. Microsoft cannot guarantee that problems that occur if you incorrectly modify Active Directory object attributes can be solved. Modify these attributes at your own risk.

The following steps re-create the SystemMailbox{ } Active Directory user account. This behavior causes the SystemMailbox mailbox object to be re-created in the mailbox store after you dismount and then remount the affected information store database.

Note To follow these steps, you must have Microsoft Windows 2000 Support Tools installed. Additionally, you must be familiar with the LDP utility.

First, use Ldp.exe to determine the ObjectGUID of the mailbox store. To do this, follow these steps: <ol> Move to the mailbox store object. You can locate this object at a distinguished name as shown in the following example:

CN=Mailbox Store (Server), CN=First Storage Group, CN=InformationStore, CN=Server, CN=Servers, CN= ,CN=Administrative Groups, CN= ,CN=Microsoft Exchange, CN=Services, CN=Configuration, DC=domain, DC=com

</li> Select and then copy the attribute value for ObjectGUID. The attribute is in the following format:</li></ol>

0be9b6db-21a5-4d75-aa53-cdfd5e6776f3

After you determine the ObjectGUID of the mailbox store, create the replacement SystemMailbox{ } object in Active Directory. To do this, follow these steps: <ol> Start the Active Directory Users and Computers snap-in.</li> On the View menu, make sure that Advanced Features is selected.</li> Locate the Microsoft Exchange System Objects container.</li> Right-click the Microsoft Exchange System Objects container, and then create a new user object in this container.</li> Set the Full name and the User logon name as follows:

SystemMailbox{ }

Note that  is the GUID of the mailbox store that you copied from the LDP utility.</li> Set the pre-Windows 2000 user logon name as the first 20 characters of the GUID. For the example used in this article, the first 20 characters of the GUID are as follows:

0be9b6db-21a5-4d75-a

</li> Click Next to continue to the password screen.</li> Assign and confirm a long, random password.</li> Mark the account as Disabled, and then click Next.</li> <li>Verify that the Create an Exchange Mailbox check box is selected.</li> <li>Ignore the Alias. However, select the correct server and store values. Then, click Finish.

Note The next two steps are required to prevent the Recipient Update Service from applying an incorrect e-mail address to this new user. If the Recipient Update Service is disabled throughout the mailbox creation, these steps are not required. Remember to reenable the Recipient Update Service when the Alias is updated in ADSI Edit.</li> <li>Right-click the user object that you just created, and then click Properties.</li> <li>Click to clear the Automatically update e-mail addresses check box, and then click Apply.

Note This step must be completed before the Recipient Update Service has updated the e-mail address proxies for this new user.</li> <li>Start ADSI Edit, and then locate the new SystemMailbox{ } user object.</li> <li>Right-click the user object, and then click Properties.</li> <li>In the Select a property to view list, click the mailNickname attribute.</li> <li>Replace the mailNickname that is listed with the correct SystemMailbox{ } identifier that you used as the Full name and the User logon name in step 5. Click Set, and then click OK to save this change. For the example used in this article, the identifier is as follows:

SystemMailbox{0be9b6db-21a5-4d75-aa53-cdfd5e6776f3}

</li> <li>Make sure that Automatically update e-mail addresses check box is selected in the Active Directory Users and Computers snap-in or that the Recipient Update Service is reenabled.</li> <li>Wait for the e-mail addresses to be generated for this new user object.</li> <li>After the user has e-mail addresses defined, confirm that the e-mail addresses are set to SystemMailbox{ }@primary SMTP domain.</li> <li>Click the Exchange Advanced tab, and then click to select the Hide from address lists check box.</li> <li>Click Mailbox Rights, select Self, and then click to select the Associated external account check box.</li> <li>Click Add, and then add the System account. Then, grant the System account Read permissions and Full mailbox user rights.</li> <li>Click OK two times to apply these changes to the user account.</li></ol>

After you create a replacement SystemMailbox{ } object in Active Directory, mount and then dismount the affected information store database. The SystemMailbox{ } mailbox object is created in the mailbox resources list in Exchange System Manager.

Register the exodbprx.dll component
To register the exodbprx.dll component, follow these steps: <ol> <li>Open a command prompt on the Exchange server.</li> <li>At the command prompt, type the following line, and then press ENTER:

regsvr32 &quot; \bin\exodbprx.dll&quot;

Note is the folder where Exchange Server is installed.</li> <li>Click OK.</li></ol>

<div class="moreinformation_section">

MORE INFORMATION
There are some minor differences between the user object that was originally created by the system attendant and the user object that is manually created when you follow the steps in the &quot;Resolution&quot; section. These differences are as follows:
 * The system attendant sets the masterAccountSID to the security identifier (SID) of the new object. The administrator can only manually set the SID of the new object to Self. This is not a significant difference.
 * The system attendant generates a long, random password. The administrator who creates the SystemMailbox could leave this password blank. A blank password may cause potential security issues.
 * The system attendant sets the msExchMailboxGUID to the value of the ObjectGUID of the SystemMailbox. The administrator sets the msExchMailboxGUID to a random value. However, this is not an issue because these values do not have to be the same.
 * The deliveryMechanism is not set by the administrator. This behavior is acceptable because the attribute is no longer used.

Additional query words: ad aduc XADM RUS

Keywords: kbprb KB316622

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.