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

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

Article ID : 948934
Last Review : March 12, 2008
Revision : 1.0

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


APPLIES TO
• Microsoft Exchange Server 2007 Enterprise Edition
• Microsoft Exchange Server 2007 Standard Edition

Back to the top

Keywords: 
kbprb kbtshoot kbexpertiseinter KB948934

Back to the top

 

Microsoft Knowledge Base Article

This article contents is Microsoft Copyrighted material.
Microsoft Corporation. All rights reserved. Terms of Use | Trademarks


You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

AddThis Social Bookmark Button

Leave a Reply

*
To prove that you're not a bot, enter this code
Anti-Spam Image