One of my favorite things about my job is that I get to learn new stuff everyday! It's like being in school all of the time! And yes, I was that person in class that always ruined the curve for everyone else.

If you have been using either Exchange 2003 or Exchange 2007 for any length of time, you may have experienced the dreaded Named Properties Depletion warning in your Application Event log. If you haven't, they look like this:

Named Properties Warning for Mailbox Databases:

Event ID: 9666
Type: Warning
Category: General
Source: msgidNamedPropsQuotaWarning
Description: The number of named properties created for database "<database name>" is close to quota limit. Current number of named properties: <number of named properties>. Quota limit for named properties: <configured quota>. User attempting to create the named property: <user name>. Named property GUID: <GUID of named property>. Named property name/id: <name of named property>.

Note: Event ID 9666 can refer to Authenticated Users (MAPI) and Non-Authenticated Users (Non-MAPI) creation of named properties. For a more in-depth explanation of the difference between Authenticated Users (MAPI) and Non-Authenticated Users (Non-MAPI), please see Jason Nelson's blog about Named Properties, X-Headers, and You (http://msexchangeteam.com/archive/2009/04/06/451003.aspx)

Even worse is getting the error events.

Named Properties Error for Mailbox Databases:

Event ID: 9667
Type: Error
Category: General
Source: msgidNamedPropsQuotaError
Description: Failed to create a new named property for database "<database name>" because the number of named properties reached the quota limit (<configured quota>). User attempting to create the named property: <user name>. Named property GUID: <GUID of named property>. Named property name/id: <name of named property>.

Note: Event ID 9667 can refer to Authenticated Users (MAPI) and Non-Authenticated Users (Non-MAPI) creation of named properties. For a more in-depth explanation of the difference between Authenticated Users (MAPI) and Non-Authenticated Users (Non-MAPI), please see Jason Nelson's blog about Named Properties, X-Headers, and You (http://msexchangeteam.com/archive/2009/04/06/451003.aspx)

By the time the error is recorded, you are probably getting calls from your end users wanting to know why they can't send or receive mail. I am not going to explain the history and impact of Named Properties since Jason Nelson wrote several excellent blogs on this (which I use all the time). Check them out here:

Named Properties, X-Headers, and You
http://msexchangeteam.com/archive/2009/04/06/451003.aspx

Named Properties, Round 2: What lies Ahead
http://msexchangeteam.com/archive/2009/06/12/451596.aspx

Service Pack 2 Preview: Get-NamedProperty
http://msexchangeteam.com/archive/2009/08/06/451948.aspx

Understanding how Outlook, CDO, MAPI, and Providers work together
http://msexchangeteam.com/archive/2005/04/08/403512.aspx

Now to clear up the biggest misconception about setting quota limits for named properties for an Exchange 2003 or Exchange 2007 databases:

Setting the quota limits does not increase the number of named properties that can be created in an Exchange 2003 or Exchange 2007 database.

The number of named properties that can be created in an Exchange 2003 or Exchange 2007 database is a limitation of the size of the data type.

Setting the quota limits for named properties for an Exchange 2003 or Exchange 2007 database increases the threshold of when you are going to get the warning and error messages in the Application Event log.

Please read the above again; it's kind of important.

For Exchange 2003 and 2007, the maximum number of named properties that can ever be created is 32,767 per database.

There is not a way to ever increase the number of named properties that can be created in Exchange 2003 or Exchange 2007 database is a limitation of the size of the data type.

It took me several readings of all KB and TechNet articles before I picked up on that. So if you didn't get it, please do not feel bad. I spent a lot of time with one of our Senior Escalation Engineers trying to understand it. Right before I wore out their last nerve, a light bulb went on over my head and I finally understood it. Now I explain it to my colleagues and customers, my cat Spike and strangers at the gas station.

And now for something completely different or a little more in-depth view of NamedProps:

The way this really works is that we have a table in the database called NamedProps. Every Named Property that gets added to the database gets its own row in this table. The limit on the NamedProps table is a limit on the number of rows in the table, which are 32,767.

The quotas, of course, are set much lower than that, so that you have some warning before you run out of rows. It doesn't matter if the user is authenticated or not - they all go into the same NamedProps table. So you could have 32k created all by authenticated users, or 32k all created by unauthenticated users, or 10k created by unauthenticated and 22k by authenticated, or whatever... it doesn't matter who created them, the bottom line is that the maximum is 32k rows in that table.

Once your table passes 8k rows (by default), we stop allowing new named props from unauthenticated clients. It's entirely possible that those 8k rows were all created by authenticated clients, but it doesn't matter. We continue allowing new names from auth clients until we hit 16k, and then we deny them as well. This is assuming the quotas are at the default of 8k/16k.

Below is a table with the named properties quota limits:

 

Exchange Version

Maximum size of the data type

Default Quota

Default Warning Issued

Default Error Issued

2003 Mailbox Store

Authenticated Users & Non-Authenticated Users 32,767

Authenticated Users: 16,384

Non-Authenticated Users: 8,192

Authenticated Users:

16,364

Non-Authenticated Users: 8,172

Authenticated Users:

16,384

Non-Authenticated Users: 8,192

2007 Mailbox Store

Authenticated Users & Non-Authenticated Users 32,767

Authenticated Users: 16,384

Non-Authenticated Users: 8,192

Authenticated Users:

16,364

Non-Authenticated Users: 8,172

Authenticated Users:

16,384

Non-Authenticated Users: 8,192

For a more in-depth explanation of the difference between Authenticated Users (MAPI) and Non-Authenticated Users (Non-MAPI), please see Jason Nelson's blog about Named Properties, X-Headers, and You (http://msexchangeteam.com/archive/2009/04/06/451003.aspx)

You can increase the thresholds so you don't get the warnings until, say 22,000. We don't recommend setting the warning quota any higher than 16,000 so you will have adequate time to take action.

And we definitely don't recommend setting the error quota to 32,767 because at that point everyone in your Exchange organization is miffed with you and you find yourself uploading your resume to a popular job site on the Internet.

You may ask yourself "where is my beautiful..."; hold on, wrong question.

Is there a way to suppress the creation of future for named properties for an Exchange 2003 or Exchange 2007 database? And what about Exchange 2010?

I am glad that you asked!

For Exchange 2007 SP1 RU1 - RU7, there is a transport agent named HeadFilterAgent that is available for download at:

http://headerfilteragent.codeplex.com/

Exchange 2007 RU 8 for Service Pack 1 and Service Pack 2 (and later) have new code that prevents future promotion of named properties. And this code is already in Exchange 2010 so no action is needed on your part.

For Exchange 2003, we have a hot fix for Service Pack 2 that enables the control for the creation of x-headers for named properties using a Registry Editor entry:

972077 "Outlook cannot display this view. Unknown Error" error message is generated in Outlook client and Event ID 9667 is logged on an Exchange Server 2003 server
http://support.microsoft.com/default.aspx?scid=kb;EN-US;972077

After you apply this fix, you may follow these steps to set a registry entry to control the promotion of X-headers for named properties:

1. Click Start , click Run , type regedit , and then click OK .

2. Locate and then click the following registry subkey:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS

\ParametersSystem\InternetContent

3. On the Edit menu, point to New , and then click DWORD Value .

4. Type GenerateNamedProperties , and then press ENTER .

5. Quit Registry Editor.

A 0 value of the GenerateNamedProperties attribute will not generate new named properties.

The default behavior (of the promotion of X-headers for named properties) is true when this registry entry is not found or set to 1.

Let's recap:

Setting the quota limits does not increase the number of named properties that can be created in an Exchange 2003 or Exchange 2007 database.

There is not a way to ever increase the number of named properties that can be created in Exchange 2003 or Exchange 2007 database is a limitation of the size of the data type.

You can suppress the promotion of named properties in Exchange 2007 SP1 RU1 - RU7 using the transport agent named HeadFilterAgent . Or by applying Exchange 2007 SP1 RU8 or Exchange 2007 SP2. For Exchange 2003 SP2, a hot fix is available that utilizes a registry setting to suppress the promotion.

- Eileen O'Rourke