Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

Event ID: 9040 may occur every 15 minutes on a computer that is running Exchange Server 2007


View products that this article applies to.

Symptoms

On a computer that is running Microsoft Exchange Server 2007, you may find that the following event error is logged in the Application event log almost every 15 minutes.

Event ID: 9040 
Raw Event ID: 9040 
Record Nr.: 63172 
Category: Assistants 
Source: MSExchange Assistants 
Type: Error 
Message: Service MSExchangeMailboxAssistants.� A code bug has been detected due to this exception: Microsoft.Exchange.Assistants.AIGrayException ---> Microsoft.Exchange.Common.GrayException ---> System.ArgumentNullException: Value cannot be null. 
Parameter name: serverDn 
�� at Microsoft.Exchange.Data.Storage.ConnectionCacheKey..ctor(String serverDn, ConnectFlag connectFlags) 
�� at Microsoft.Exchange.Data.Storage.ConnectionCachePool.GetConnectionCache(String server, ConnectFlag connectFlags) 
�� at Microsoft.Exchange.Data.Storage.ConnectionCachePool.OpenMailbox(String serverDn, String userDn, String mailboxDn, Guid mailboxGuid, Guid mdbGuid, Object identity, ConnectFlag connectFlag, OpenStoreFlag openStoreFlag, CultureInfo cultureInfo, String clientInfoString, Boolean secondTry) 
�� at Microsoft.Exchange.Data.Storage.ConnectionCachePool.OpenMailbox(String serverDn, String userDn, String mailboxDn, Guid mailboxGuid, Guid mdbGuid, Object identity, ConnectFlag connectFlag, OpenStoreFlag openStoreFlag, CultureInfo cultureInfo, String clientInfoString) 
�� at Microsoft.Exchange.Data.Storage.MailboxSession.Initialize(LogonType logonType, ExchangePrincipal owner, DelegateLogonUser delegateUser, Object identity, OpenMailboxSessionFlags flags) 
�� at Microsoft.Exchange.Data.Storage.MailboxSession.CreateMailboxSession(LogonType logonType, ExchangePrincipal owner, DelegateLogonUser delegateUser, Object identity, OpenMailboxSessionFlags flags, CultureInfo cultureInfo, String clientInfoString) 
�� at Microsoft.Exchange.Data.Storage.MailboxSession.OpenAsAdmin(ExchangePrincipal mailboxOwner, CultureInfo cultureInfo, String clientInfoString, Boolean useLocalRpc, Boolean ignoreHomeMdb) 
�� at Microsoft.Exchange.Data.Storage.MailboxSession.OpenAsAdmin(ExchangePrincipal mailboxOwner, CultureInfo cultureInfo, String clientInfoString, Boolean useLocalRpc) 
�� at Microsoft.Exchange.Assistants.DatabaseInfo.GetMailbox(ExchangePrincipal principal, String clientInfo) 
�� at Microsoft.Exchange.InfoWorker.Assistants.OOF.OofScheduleStore.ScanForScheduledOof() 
�� at Microsoft.Exchange.InfoWorker.Assistants.OOF.OofScheduleStore.Load(Boolean useCache) 
�� at Microsoft.Exchange.InfoWorker.Assistants.OOF.OofScheduler..ctor(DatabaseInfo databaseInfo, Boolean useCache) 
�� at Microsoft.Exchange.InfoWorker.Assistants.OOF.OofAssistant.OnStartInternal(EventBasedStartInfo startInfo) 
�� at Microsoft.Exchange.InfoWorker.Assistants.EventBasedAssistant.OnStart(EventBasedStartInfo startInfo) 
�� at Microsoft.Exchange.Assistants.EventBasedAssistantCollection.StartAssistants(EventBasedStartInfo startInfo) 
�� at Microsoft.Exchange.Assistants.EventController.Start() 
�� at Microsoft.Exchange.Assistants.OnlineDatabase.Start() 
�� at Microsoft.Exchange.Assistants.Util.<>c__DisplayClass2.<CatchMeIfYouCan>b__0() 
�� at Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch(TryDelegate tryDelegate, FilterDelegate filterDelegate, CatchDelegate catchDelegate) 
�� --- End of inner exception stack trace --- 
�� at Microsoft.Exchange.Common.GrayException.ExceptionCatcher(Object exception) 
�� at Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch(TryDelegate tryDelegate, FilterDelegate filterDelegate, CatchDelegate catchDelegate) 
�� at Microsoft.Exchange.Common.GrayException.MapAndReportGrayExceptions(UserCodeDelegate tryCode) 
�� at Microsoft.Exchange.Assistants.Util.CatchMeIfYouCan(CatchMe function) 
�� --- End of inner exception stack trace --- 
�� at Microsoft.Exchange.Assistants.Util.CatchMeIfYouCan(CatchMe function) 
�� at Microsoft.Exchange.Assistants.Base.CatchMeIfYouCan(CatchMe function).

↑ Back to the top


Cause

This problem occurs because the ExchangeLegacyDN attribute of the server object does not match the ExchangeLegacyDN attribute for the user.

↑ Back to the top


Workaround

To work around this problem, run the following Exchange cmdlets.
Get-ExchangeServer -ID  Servername |FL name, ExchangeLegacyDN
Get-Mailbox | FL Displayname, ServerLegacyDN
Examine the ServerLegacyDN attribute on the mailbox to determine whether it matches the ExchangeLegacyDN attribute on the server object. The cmdlets output will help determine the mailboxes that are mismatched. Correct the mismatched users, and then stop and restart the mailbox assistant service.

Note If there are more than 1000 mailboxes on the server, run the "Get-Mailbox -ResultSize Unlimited | FL Displayname, ServerLegacyDN" cmdlet instead of the "Get-Mailbox | FL Displayname, ServerLegacyDN" cmdlet.

↑ Back to the top


Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

↑ Back to the top


More information

To correct the attribute for a user, back up the attribute, and then use a tool to correct the attribute. To back up the attribute, use the ADSIEdit tool or another tool.

↑ Back to the top


Keywords: KB948934, kbexpertiseinter, kbtshoot, kbprb

↑ Back to the top

Article Info
Article ID : 948934
Revision : 2
Created on : 1/7/2009
Published on : 1/7/2009
Exists online : False
Views : 360