Thursday, January 28, 2010

OCS 2007 R2 Workload Architecture Poster

I ran into a poster that Microsoft published a few days ago that details the traffic flow of protocols and ports used in each workload within Office Communications Server 2007 R2 (OCS 2007 R2). OCS 2007 R2 supports the following workloads: IM and Presence, Conferencing, Application Sharing, and Enterprise Voice. These filtered views can assist you in architecting your deployment of Communications Server 2007 R2. The different server roles are described along with server certificate requirements. Firewall and DNS configuration requirements are also described.

Get your copy at:

Friday, January 22, 2010

Newly updated Exchange 2010 Mailbox Requirements Calculator

Microsoft (thank you Ross and Matt!) have released a much needed update to the Exchange 2010 Mailbox Requirements Calculator. 

This version includes the following improvements and new features:

  • Added processor core guidance for Hub Transport and Client Access server roles.
  • Added the ability to define a custom number of databases that you would like to implement in the solution.
  • Added support for 2-node site resilient Database Availability Groups.
  • Added 1 and 6 processor cores as selectable options.
  • Improved breakdown of the activation scenarios in a site resilient solution.
  • Improved breakout of the role requirements section.
  • The Storage Design tab now indicates that when you select a custom RAID configuration that the calculator ignores RAID-5 and RAID-6 for 5.xK and 7.2K spindles due to performance concerns.
  • Updated processor utilization results to show the processor utilization even if it is above the recommended threshold.
  • Made conditional formatting improvements throughout the calculator to warn you when you have a configuration that will not work.
  • Improved various cell comments.

This version also corrects the following bugs:

  • Fixed LUN Requirements tables to accurately reflect space requirements when database copies are deployed as each server may not host all database copies.
  • Fixed conditions that resulted in -1 lagged copies.
  • Improved the active database copies after first/second server failure calculations:
    • We now calculate and expose the worst case scenario (the server that has to host the most active databases) is used in sizing memory and CPU.
    • We now ensure that the secondary datacenter calculations only consider double server failures when there are 3+ HA copies located in the secondary datacenter.
  • Removed maximum memory stipulation in the minimum ESE cache memory calculation.

For more information on this new update:

You can download the update from:

Friday, January 15, 2010

Exchange Server 2010 Deployment Assistant Expanded

In November, Microsoft launched the Exchange Server 2010 Deployment Assistant. In the initial version of the Deployment Assistant, content was available for customers upgrading from Exchange 2003. Microsoft has now announced that they have  released content for the following scenarios to

  • Upgrading from Exchange Server 2007
  • Upgrading from a mixed Exchange Server 2003/2007
  • New Exchange Server 2010 installation

The Deployment Assistant allows you to create Exchange 2010 deployment instructions that are customized to your environment. The Deployment Assistant asks a small set of questions, and based on your answers, it provides a set of instructions that are designed help you install and complete a basic configuration on Exchange 2010. Instead of reading dozens of topics in the Exchange 2010 Technical library, you simply answer a few questions, and the Deployment Assistant gives you customized content to install Exchange 2010. 

I would recommended however that you also read the Technical Library later on as the instructions provided are basic and may not meet all of your needs if you already have an older install of Exchange that isn’t a standard installation or if you have another mail system such as Lotus Domino or GroupWise.

Thursday, January 14, 2010

New uses for DiskPart CLI

So, here I am, reading new email (at 10pm I might add) from within the Exchange Master and Architect Community when I came across a thread started by one of the other long time Exchange Masters (thanks Derrick!) around the topic of using DiskPart for automation.  Now, many of us remember using DiskPart or DiskPar in older versions of Exchange when we were running it on Windows 2003 and earlier Operating Systems.  We used to use it to align the disk offset with the recommended settings from the disk subsystem manufacturer, often 64 or 128 instead of the default for Windows back then of 63.  And to be honest, I haven’t really thought much about DiskPart lately since we don’t require it for Windows 2008 (the default now in Windows is 64 – Yeah!).  

As the email pointed out, DiskPart now supports a Command Line Interface (CLI) that can be used for automation of Disk subsystem configuration and management.  Way cool eh!?

Microsoft has posted a TechNet article called “DiskPart Command-Line Options”.

So, what is new in the current release of DiskPart?  Read on:

1. One nice addition to diskpart scripting file is they finally have the NOERR parameter, so when a single typo dumps you out like before causing the user to create a second file with the fixed entries minus everything that worked.  Major Pain.

Ex: assign [{letter=d|mount=path}] [noerr]

2. Format: you can now format from inside Diskpart.  So the need for a second script file to Format all those drives is no longer needed. 


3. AUTOMOUNT: be careful.  This could really mess up clustering (if not in exchange) if used at the wrong time.

How does this make your life simpler?  If you have lots of drives, having to do each one manually, creating partitions, then assigning mount points through disk manager UI takes forever. Formatting through the UI (selecting each drive and waiting) also takes forever.  Now it all can be done in one place, and you are sure that you are selecting the correct drive for naming since its in the same command set.

To run the answer file with diskpart


Diskpart answer file example: 

select disk 10

online disk noerr

attributes disk clear readonly noerr

create partition primary noerr

select partition 1

assign mount C:\EXCHANGE_MOUNT_POINTS\MDB1 noerr

FORMAT FS=NTFS unit=65536 LABEL="New Volume" QUICK noerr




Tuesday, January 12, 2010

Exchange 2007 SP2 RU1 – Raising diagnostic logging for “Message Access” causing calendar issues for users

Microsoft posted yesterday a new issue that administrators can cause with user calendaring just by increasing the diagnostic logging for “Message Access” to anything other than “Lowest”.  This seems to impact Exchange Server 2007 Service Pack 2 implementations up through Roll Up 1.  A KB article is not available yet, but appears to be in the works.  Based upon , the following information has been released on this issue. 

What the users may see

Symptoms before applying the pending update:

  • Access to recurring appointments (which have attachments for the instances) is broken - Outlook in online mode receives an "Item cannot be opened" error.
  • Sending an embedded message in cached mode results in the attachment being stripped.
  • Availability is not shown for some users.

The following symptoms may persist, even after applying the update or manually setting the Message Access diagnostic level back to Lowest:

  • Certain users show no availability information from Outlook or OWA scheduling assistant.  Also, event id 4009 for MSExchange Availability is logged on servers with the CAS role

Exception returned:

Microsoft.Exchange.Data.Storage.ObjectNotFoundException: Cannot open embedded message.

  • Delegates viewing calendars receive the error:

Cannot read on instance of this recurring appointment. Close any open appointments and try again, or recreate the appointment

  • Messages are sent to ActiveSync devices with the following text:

Microsoft Exchange was unable to send the following items to your mobile device. These items have not been deleted. You should be able to access them using either Outlook or Outlook Web Access.

  • When accessing Calendar from OWA, the day, week or month viewing will fail with the error:

The item that you attempted to access no longer exists.

We have determined these symptoms are primarily due to calendar items affected between the time logging was increased and when the pending update or workaround is implemented. Recurring calendar items with no end date that have had an occurrence modified seem most susceptible.  A quick method to find these visually is to look for the circling arrows with a line through it.

Does this apply to you?

Before the release of the pending update, if any Exchange Server 2007 SP2 server with the Mailbox role has the following new event log level raised from Lowest, this applies to you.

MSExchangeIS\9000 Private\Message Access

How to check your Organization for the problem

You can determine if your MBX servers are at risk by looking in the following places:

1) The new GUI introduced in SP2 - in the Exchange Management Console under Server Configuration, Mailbox, select the server and choose Manage Diagnostic Logging Properties...

2) In the registry for each MBX server [Lowest = 0]

3) Run the following Exchange CMDlet to find all Exchange 2007 MBX servers and this specific diagnostic logging level for Message Access:

Get-MailboxServer | foreach {Get-EventLogLevel -id ($ + "\MSExchangeIS\9000 Private\Message Access")}

How to correct the problem

If any MBX server is found to have logging above the default before the pending update is applied, you should reset it to Lowest manually.  Note which MBX servers are configured with the non-default level and then run this CMDlet to ensure they are all set to "Lowest"

Then either remount the databases or restart the Information Store service.

Get-MailboxServer | foreach {Set-EventLogLevel -id ($ + "\MSExchangeIS\9000 Private\Message Access") -Level "Lowest"}

A sample PowerShell script is available here to track down calendar items contributing to the symptoms that persist after applying the workaround detailed above.  This script will identify the day containing problem appointments and can be run against a specific mailbox or all Exchange 2007 mailboxes.  The requirements for running the script are detailed in the script comments. The sample script uses the $true argument to enumerate all Exchange 2007 mailboxes and to initialize the Autodiscover portion of the Web Services object:

[PS] C:\Powershell\scripts> .\Find-BadCalendarItems.ps1 $true
Checking mailbox:
Checking mailbox:
Checking mailbox:
Checking mailbox:
Failed: 11/30/2009 - 12/30/2009
Error: Mailbox logon failed., inner exception: Cannot open embedded message.

Day failed: 12/2/2009
Checking mailbox:
Failed : 11/30/2009 - 12/30/2009
Error: Mailbox logon failed., inner exception: Cannot open embedded message.

Day failed: 12/23/2009
Checking mailbox:
Checking mailbox:
Problems found: 12/2/2009 12/23/2009

Now that 12/23/2009 has been identified as the problem date for user, you can use Outlook to find any recurring calendar items with no end date that have had an occurrence modified on that day. Copy that occurrence [either to a temporary Calendar folder or even to a different time that day] then delete just that occurrence. Moving the copy back or manually recreating the instance will resolve the symptom for that user.