Поделиться через


PR_PREDECESSOR_CHANGE_LIST MAPI Property and its limit

I had to deal recently with a problem which turned out it can be an important issue in some environments. My customer had a clean Exchange 2007 SP1 environment, installed on Windows 2008 SP2 and Outlook 2003 SP3 as clients. Only MAPI connections implemented. All of a sudden different users start one day to report a strange behavior: they tried to open their Outlook clients, which btw. were configured per Group Policy to work always just in Cache Mode, and the immediately get following error "Cannot start Microsoft Office Outlook. Unable to open the Outlook window. The set of folders could not be opened. Out of memory or system resources. Close some windows or programs and try again."

Users were affected sporadic, one after the other, and the affected ones could no longer work in Cache Mode, just in Online Mode.

We start troubleshooting and we could exclude very quick antivirus programs, weird add-ons installed, TS or Citrix connections, etc. Creating a new Outlook profile failed, renaming the .ost file failed as well, starting Outlook in safe mode or with other parameters brought us to the same unexpected result. In the meantime more users were affected by this. We had slightly the impressions that something “infected” the Cache Mode Outlook users and spread around.

So we dived deeper. MFCMAPI was our friend here. Logon with it and open the corresponding Outlook Profile, then navigate to Root Mailbox, then IPM_Subtree and finally under the Inbox you will find for such problems the guilty “germ”: PR_PREDECESSOR_CHANGE_LIST MAPI Property. Actually its value caused the whole trouble. How? As I checked I found out that this value is in Outlook 2003 responsible for “counting down” the number of times a new Cache Mode profile is created and with it an .ost file is setup. Each time when a new such action is performed, the value of the property is incremented. Technically this property is limited to 8 Kbytes and it will grow by 21 bytes every time you create a new profile in Cached Mode.

Unfortunately it 7999 bytes limit is the problem. As soon as this maximum value is exceeded, the behavior occurs. Furthermore this property is computed by Exchange Server, there is no way to modify or reset it manually.

In my case it turns out that customer configured roaming profiles for the users in the environment, and each time they used this roaming profile on different machines, a new Outlook profile was created and together with it the corresponding .ost file. PR_PREDECESSOR_CHANGE_LIST MAPI Property silently get incremented and this lead further to the effect that, as soon as users reached this limit, each Cached Profile encounter the error.

Unfortunately in such scenarios the only way to solve the problem is to export the mailbox content in a .pst file, delete the old mailbox, create a new mailbox for the affected user and import the content. Furthermore if you encounter this problem please do not use a newer Outlook version to overcome this, as it might lead to other problems and more than that it is not supported by Microsoft PSS. The good news is that all newer Outlook versions are not affected by this. So if you just seek for a further argument to upgrade your Outlook version this might be another strong argument.