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

Article translations Article translations
Article ID: 948934 - View products that this article applies to.
Expand all | Collapse all

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).

CAUSE

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

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.

STATUS

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

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.

Properties

Article ID: 948934 - Last Review: January 7, 2009 - Revision: 2.0
APPLIES TO
  • Microsoft Exchange Server 2007 Enterprise Edition
  • Microsoft Exchange Server 2007 Standard Edition
Keywords: 
kbprb kbtshoot kbexpertiseinter KB948934

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com