• Direct Booking using Outlook 2010 against Exchange 2003 Servers

    Now that Office 2010 has RTM’ed, we’ve started to see a number of issues pop up where customers are finding that they are having problems reserving a conference room using it.  The reason is that Outlook 2010 by default has Direct Booking disabled.  This is by design since Direct Booking is the old Exchange 2003 way of doing things and Exchange 2007 and 2010 has automatic processing of resource mailboxes.

    If you are still on Exchange 2003, however, you may have the need to enable Direct Booking for your clients.  In order to enable it in Outlook 2010 you will need to add the following DWord in the registry for the organizers client:

    Key: HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Options\Calendar

    DWORD: EnableDirectBooking

    Value: 1

    Hope that helps some people out.

  • 200 GB limit on Database Sizes?

    A customer of mine mentioned that they were told by a vendor that Microsoft recommends that Exchange databases should not be more than 200 GB.  I was not aware of this being a recommendation by us.  Then I found the following link:

    Planning Disk Storage

    There we do say the following:  "Because the maximum recommended database size in a CCR environment is 200 GB, the server should host no more than 180 mailboxes per database."

    That 200 GB recommended limit is only on servers that are doing CCR.  The 180 mailboxes limit was based on each mailbox having 1 GB limits.  We actually recommend that you not have database larger then 50 GB.  In fact, if you run one of the Microsoft Exchange Server Analyzer tools we will may throw a warning if the server has databases that are 100 GB in size:

    The Exchange Database exceeds 100 GB in size

    We still have a 16 TB limit on the size of an Exchange database, but we don't recommend that you have databases that large if you need to backup and recover them in a timely manner.  Maybe a company's SLA, hardware and architecture allows you to run larger databases.  We however have found that most companies prefer to be able to get there databases recovered in a timely manner, so 50 GB might be the largest that they can handle. 

    Be sure to consider how long it would take to backup, restore, or run maintenance on your databases before letting them grow to an unmanageable size.

  • Preparing your AD for Exchange 2007 SP1

    There are a number of switches that can be used for getting the Active Directory ready for the installation of Exchange 2007.  The switches for preparing the AD can be found at http://technet.microsoft.com/en-us/library/bb125224.aspx

    As you can see they are:

    /PrepareLegacyExchangePermissions or /pl

    /PrepareSchema or /ps

    /PrepareAD or /p

    /PrepareDomain or /pd

    /PrepareAllDomains or /pad

    Why would you care about all of these switches?

    Well if your Exchange organization is in simple and only has one AD site, Domain, and Forest and your account is a member of the Schema Admins group and the Enterprise Admin group, and has the Exchange Full Administrator role assigned to it, then you may not need to know the switches.  But if you have multiple domains, administrators and sites, then knowing the switches may be helpful for you.

    /PrepareLegacyExchangePermissions

    When would I run /PrepareLegacyExchangePermissions?

    This is a necessity if you are currently running Exchange 2003 or 2000.  With Exchange 2007 there is a new role called “Exchange Recipient Administrators”.  Accounts that have this role can now modify Exchange attributes on user accounts.  The Recipient Update Service in Exchange 2000/2003 however runs under the Exchange localSystem account that the server and we need to give the right amount of permissions to those accounts in order for the RUS to be able to still do its job.  Since the Exchange 200X servers run under an account that is a member of the Exchange Enterprise Servers group we make the modifications there.  That is the reason for this switch. 

    What are the permissions necessary to run this?

    The account running this must have Enterprise Admins permissions so that it can contact every domain in the Forest.  It makes the modifications forest wide.

    If you run /PrepareAD or /PrepareSchema we do all of the actions included in /PrepareLegacyExchangePermissions so it may not be necessary to run /PrepareLegacyExchangePermissions in some cases.

    /PrepareSchema

    What does /PrepareSchema do?

    This command will import the schema changes for Exchange 2007, 2003, and 2000.  Manually importing the ldf files is not supported and this has to be done via setup.  This will also do the actions included in /PrepareLegacyExchangePermissions.  If you run /PrepareAD the actions in /PrepareSchema are done as well.

    /PrepareAD

    What does /PrepareAD do?

    This is the big one.  This is the one switch that does all of the steps so far described and more.  This one also creates containers in the AD, verifies schema updates, assigns needed permissions, creates Security Groups, the FYDIBOHF23SPDLT Administrative Group, the DWBGZMFD01QNBJR Routing Group, and prepares the local domain (/PrepareDomain).

    What permissions are needed to run /PrepareAD?

    You must run this as the member of the Enterprise Admins Group.

    Where should this be run?

    It must be run from a machine that is in the same Domain and Site as the Schema Master.  That machine must also have LDAP access (port 389) to all domains in the forest. 

    /PrepareDomain and /PrepareAllDomains

    What does /PrepareDomain and /PrepareAllDomains do?

    Do you remember what /DomainPrep did in Exchange 2003?  This is very similar to what that did in that it handles the things that need to be done at the Domain level.  This includes granting permissions, creating containers, and creating Groups.  This needs to be done in each domain that will host Exchange servers or mail-enabled objects.  Domain Admins will need to run this in each of those domains.  If you are running this as Enterprise Admin however, you can run the /PrepareAllDomains and do all of the domains in one shot.

    Ok, that is a lot of information.  Can you give me a quick rundown of what I need to do?

    Sure.  Do you have a single forest, domain, site?  OK, run the setup from the GUI and you should be fine.  Do you have multiple Domains?  Ok, then run /PrepareAD for the forest and /PrepareDomain for any other domains (or /PrepareAllDomains).

    Sources:

    White Paper: Preparing Active Directory for Exchange 2007

    http://technet.microsoft.com/en-us/library/bb288907.aspx

    Preparing Legacy Exchange Permissions

    http://technet.microsoft.com/en-us/library/aa997914.aspx

    How to Prepare Active Directory and Domains

    http://technet.microsoft.com/en-us/library/bb125224.aspx

  • Restricted Views and Shared Calendars

    Man what a week. Some customers are seeing that when opening someone else's calendar that it takes a long time at first but when they go back to the calendar it is fine for a while and then they see the slowness again. If you are seeing this, we may know why.

    (Credit: A lot of this is from Stephen Griffin's internal document.  His blog: http://blogs.msdn.com/Stephen_Griffin)

    *** Problem Description ***

    When viewing someone else's Calendar, contact folder, etc, there may be delays before the folder can be viewed. Once the folder has been viewed, switching away and back is fairly quick, but after a period of time, accessing the folder is again slow. This is especially long if the number of items in the calendar is over 5000.

    *** Possible Reasons ***

    When Outlook accesses someone else's folders, it applies a view which restricts the user from viewing private items.

    The act of applying a view to a folder creates search folders in the store. Once a search folder is created, it is cached for later use. If we try to create a search folder and discover there is one in the cache we can use, we don't create the search folder and instead used the cached search folder. This allows subsequent viewings to be fairly quick.

    By default, we don't cache all search folders forever. Caching too many search folders would cause server side delays associated with updating the search folders:

    216076 XADM: Accessing Information Store Folders May Become Slow

    http://support.microsoft.com/?id=216076

    However, if we don't cache *enough* of our search folders, we may run into the problem from the other direction.

    Suppose we're configured to keep 11 search folders (views) per folder. Suppose Frank has a calendar folder that he shares out to 15 other users. Sally accessed the folder and sees a delay while her search folder is built. After it's built, access is quick. Then Sally doesn't look at the folder for a day and 11 other users access it. A search folder will be built for each of them. Since we can only cache 11 search folders, when the 11th user hits the folder, we'll delete the search folder we built for Sally. Now, the next time Sally hits the folder, she'll have to wait while we build her search folder.

    Suppose we configure Frank's Calendar folder to cache 20 views instead. Then Sally and the other 14 users can all hit the folder, and only 15 search folders will be created. Since 15 is less than 20, we never have to cycle out a view, so access is quick for everyone after the initial hit to create the search folders.

    The default is 11, set store wide. This can be viewed by using ADSIEdit to view the Store Object and look at the msExchMaxCachedViews attribute. (dn: CN=Mailbox Store,CN=Storage Group,CN=InformationStore,CN=Server NAME,CN=Servers,CN=AG Name,CN=Administrative Groups,CN=Orgname,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=Company,DC=com) This is set to 11 by default. In some customer's instances we have seen that increasing this to a higher number (but no more than 50) is necessary.

    How do we verify that this is what you are seeing? It would require that you take the Information Store DB offline that contains the mailbox that is being accessed. Then we would run isinteg -s <ServerName> -dump -l <logfilename>. If this output is sent to Microsoft they can confirm what you are seeing. (Hint: We are looking for a high number of SearchFIDs values.) Or, see the perfmon counter below.

    Also, it turns out that in Outlook 2003 we are creating too many calendar search folders (indexes).

    896418 Description of the Outlook 2003 post-Service Pack 1 hotfix package:

    http://support.microsoft.com/?id=896418

    This fix resolves the issue where we are creating too many views against another user's calendar.

    The outlook 2003 fix used in conjunction with the increasing of the msExchMaxCachedViews attribute has been the resolution for many of our customers who have seen this.

    Oh, and having additional locales on the client side can create even more views as well.

    Q: What is the impact on the server?
    A: Creating too many indexes over and over can place a load on the servers. Having too many indexes stored can also slow down the clients accessing the folders as well. Gradually increasing the msExchMaxCachedViews attribute is recommended while keeping an eye on the performance of the server. It is suggested that 50 be the maximum number. It is not suggested that you go to this number first. I would increase the number by 5 or 10 each time you increase the number.

    Q: Is hotfix 896418 a scenario that only affects Outlook 2003 clients?
    A: If they have 98%+ Outlook 2002\XP users and only a handful of Outlook 2003 clients, then it is not likely that they will run across this particular bug, because this is strictly a 2003 bug.

    Q: How can we make the Event IDs show up for the Restricted Views on Folders?
    A: They can set "9030 Views" under
    "HKLM\System\CurrentControlSet\Services\MSExchangeIS\Diagnostics\9000 Private" to 1 and get event logs when views are created.
    This will show the following:
    MessageID=1167
    Severity=Informational
    Facility=Views
    SymbolicName=msgidNewRest
    Language=English
    %1 created a new restricted view on folder %2 on database "%3".

    Q: Is there a Performance Monitor counter that will show us the number of Restricted Views that are created?
    A: Yes - But only if you are running Exchange 2003 SP1.
    MSExchangeIS Mailbox
    Restricted View Cache Miss Rate - is the rate at which restricted views are created in the mailbox store...

    Q: How do I get the number of items in the Calendar?
    A: Go to the Calendar. Click View \ Arrange by \ Current View \ By Category. (This may take a while - we are creating a new view). Then look at the Bottom Left hand side - #### Items should show there.  To do this without creating another view you could use MFCMAPI.

  • Exchange 2007 SP1 on Windows Server 2003 or Windows Server 2008?

    After spending some time thinking about the question regarding whether you should deploy Exchange 2007 SP1 on Windows Server 2003 or Windows Server 2008, I decided to do some more research on it. 

    I came up with the table below and I am including the public sources of my information as well.  In short, using Windows 2008 could provide a faster migration experience as well as performance improvements.  I am actually preferring Windows 2008 now.  Hopefully this will help you in your decision. 

    Windows 2008 Windows 2003
    + Faster installation time – No additional downloads or prerequisites required.  Additional components can be installed using an XML file. + Familiarity of Windows 2003 – less learning time
    + Already Running Windows 2008 and no need to upgrade at a later date.  + Already a stable base OS for many customers
    + Performance and scalability enhancements for Client Access server - This requires installation of a number of additional hotfixes and Service Packs to get Exchange 2007 SP1 installed
    + Multiple subnet failover clusters – support for SCC or CCR in multiple Datacenters without the need for a VLAN to span subnets - CCR requirement for same subnet restricts options.  SCR can be done across different subnets however.
    + More Quorum configuration options for clustering. - There is no supported upgrade path from a Windows Server 2003 running Exchange 2007 to Windows Server 2008
    - Existing Exchange 2003 servers can’t use Windows 2008 domain controllers that are read only.  
    - Exchange 2003 may not install correctly in a pure Windows Server 2008 forest if you try to install Exchange in a child domain without installing Exchange in the parent domain.
    - The big unknowns – The “Wait until SP1 rule” that many have.  

    This is not by any means a complete list of all of the benefits of going to Windows 2008.  This is only what I have found publicly so far as Exchange 2007 SP1 goes.  As I spend more and more time with Windows 2008 I am really liking it.  I like the new interface for managing roles and features a lot. 

    Sources of material: