Share via


9646 still seen on Exchange 2013 even after applying "View Information store status"

Of course if you have a MAPI application you are most likely familiar with the 9646 errors.

Event Type: Error
Event Source: MSExchangeIS
Event Category: General

Event ID: 9646

Description:
Mapi session "/o=ExchangeOrg/ou=First Administrative Group/cn=Recipients/cn=User" exceeded the maximum of 32 objects
of type "session".

This event is discussed in this support article : 2742012 .  However, in Exchange Server 2013 the "View information store status" no longer applies.  Therefore, you have to use the permission "Administer information store". Additionally, if your MAPI application logs on to an initial mailbox then opens additional mailboxes within the organization you have to ensure that mailbox is opened with admin privileges.  The easiest way to determine if that is occurring is by reviewing the RPC Client Access Logs.  You should see the type of logon as "Logon: Admin" for each mailbox you connect to (even the initial one).  If you don't, you need to change your code to pass the flag OPENSTORE_USE_ADMIN_PRIVILEGE on each attempt.  This is easy if manually calling IMAPISession::OpenMsgStore, you just pass the flag when creating the EntryID using IExchangeManageStore::CreateStoreEntryID().  However, in the case of the initial mailbox this is a little bit more cumbersome.  What has to be done is that you need to open the profile section for the EMSMDB provider and change the property PR_PROFILE_OPEN_FLAGS to include the flag.  Once that is done the initial logon should also be of type "Admin".  If you don't do this, then each time you logon to the initial mailbox it will count against the 32 session budget.  Eventually that budget will be exhausted and you will see the event logged on the server.