Sunday, August 10, 2008

Mailbox Size Quota are not applied on the user mailbox in Exchange 2007


From time to time, policies changes, and special configuration is requested to add one GB to the executive mailbox size for a reason or another. sometimes we experience and incident that when we change the default quota for a mailbox to higher or lower size, it's not reflected on the outlook client even after restarting outlook many times, it still only feel the old value, meanwhile if we wait for couple of hours, or restart the information store service, you will find that the new configuration is applied immediately… why this behavior?

Well, first it's by design. As when the MSExchangeIS (information store)service starts it read the mailbox configuration and cache this configuration, and the MSExchangeIS service use this cached information to enforce the mailbox size. By default, there are two ways to refresh this cached configuration:

  1. Wait for two hours and that will trigger the refresh interval then it will reread the new configuration
  2. Restart the MSExchangeIS service and it will reread the new configuration

Well, that's not practical, our CEO need the new configuration now, otherwise he won't be able to send or receive mails, (or we will get fired) so what's our third option? We need a quick easy without downtime option… do we have such option? Yes we have but this will include only one time restart for the MSExchangeIS service to take the new configuration after the registry modification..

The safe way to do so (if you do it right) is to change the default refresh interval for the mailbox information cache by a regkey called Reread Logon Quotas Interval this value have some dependencies, so if you gonna change it you have to change two other values as well including the DSAccess (part of MAD.EXE, remember it?)

Make sure you backup the registry first, and do the following steps: (please guys, we are talking about MSExchangeIS service, so which server we will do that on?? Choose the right answer: 1) Mailbox server role, 2) the exchange server that hold the mailboxes, 3) the Exchange 2007 server that's NOT CAS, HUB, UM nor edge?)

yeeeeah james you right, the mailbox server role that we will do the following action on, because MSExchangeIS is the service that's responsible for the Mailbox Database activities, and it's only installed on this server role.. this configuration will be configured in multiple steps bulk to get the same final configuration, as I said it have some dependencies..

Part A of configuration:

  1. Open RUN – type regedit
  2. Navigate to this location HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem
  3. Right click the ParametersSystem container and choose NEW then choose DWORD value and name it Reread Logon Quotas Interval
  4. Right click the value you just created and choose Modify
  5. Ensure that the base is Decimal, and add the value you want to configure in seconds, e.g. for 20 minutes enter there a value of 1200

Part B of configuration:

  1. Open RUN – type regedit
  2. Navigate to this location HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem
  3. Right click the ParametersSystem container and choose NEW then choose DWORD value and name it Mailbox Cache Age Limit
  4. Right click the value you just created and choose Modify
  5. Ensure that the base is Decimal, and add the value you want to configure in Minutes, e.g. for 1 hour enter there a value of 60

Part C of configuration:

  1. Open RUN – type regedit
  2. Navigate to this location HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchange ADAccess\Instance0
  3. If the location is not present, right click the MSExchange ADAccess and choose new KEY and name it Instance0
  4. Right click the Instance0 container and choose NEW then choose DWORD value and name it CacheTTLUser
  5. Right click the value you just created and choose Modify
  6. Ensure that the base is Decimal, and add the value you want to configure in Seconds, e.g. for 20 Minutes enter there a value of 1200

Close regedit, and restart the information store service, from now on the cached information will be kept only for the configured amount of time

Regards

Mohammed Saad