Category Archives: Exchange 2007

Mount point design and MSSearch

0
Filed under Exchange 2007, Exchange 2010

Source: Tim McMichael

The use of mount points for Exchange is becoming more common place in many installations.  Some customers feel the best implementation of mount points consists of a small root disk with mount points created from folders on that disk.

 

For example, I may have a Drive L: that is 10 megs and I may create 4 folders on this drive (Database1 / Database2 / Database3 / Database4).  I will then create mount points utilizing the folders created from the L drive.

There are certain processes in Exchange that often check for free drive space prior to performing certain operations.  Unfortunately these processes are not necessarily mount point aware – therefore they end up querying the free drive space of the lettered volume rather than the mount point.  One of these processes is MSSearch.

 

MSSearch by default creates a catalog data folder co-located with each EDB file.  In our example above the catalog data folder and the edb file would be in L:\Database1 (where Database1 is the mount point).  In this this case the L drive has 10 megs free space but the Database1 mount point has 1.5 terabytes of free space.  When MSSearch attempts to initialize the initial catalog this operation fails as the drive space reported by the disk L is not sufficient (even though there is plenty of space where the actual catalog is stored).

 

Here is an example of some events you may see when this occurs.

Log Name:      Application
Source:        MSExchange Search Indexer
Date:          6/14/2010 12:11:20 PM
Event ID:      104
Task Category: General
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      server.company.com
Description:
Exchange Search Indexer failed to enable the Mailbox Database DATABASE(GUID = 58c0ed8a-dbfc-4d55-b265-8a80f1dc477b) after 1 tries. The last failure was: System.ComponentModel.Win32Exception: Unable to SetProperty FTE_PluginList on catalog ExSearch-58c0ed8a-dbfc-4d55-b265-8a80f1dc477b-26fc1c62-d3e8-4711-b3c9-3bb0b32aec0a. Error = -2147215320
   at Microsoft.Exchange.Msfte.CFTEAdmin.SetProperty(CatalogState catalogInfo, PropertyScope propertyScope, String propertyName, Object propertyValue, Boolean throwOnFailure)
   at Microsoft.Exchange.Msfte.CFTEAdmin.CreateCatalog(CatalogState catalogInfo)
   at Microsoft.Exchange.Search.Globals.CreateCatalog(CatalogState state, String reason)
   at Microsoft.Exchange.Search.Globals.RecreateCatalogAndPropertyStore(CatalogState catalogInfo, String reason)
   at Microsoft.Exchange.Search.CatalogState.CreateNew(String reason)
   at Microsoft.Exchange.Search.CatalogState.Reset(String reason)
   at Microsoft.Exchange.Search.CatalogState.HandleMountCatalogException(Exception exception)
   at Microsoft.Exchange.Search.Globals.CheckAndInitializeCatalog(CatalogState catalogInfo)
   at Microsoft.Exchange.Search.Driver.ProcessNewCatalogInternal(CatalogState catalog, List`1 mdbsToCrawl, Int32& numberOfDisabledMDBs). It will retry after 10 minutes.

 

Log Name:      Application
Source:        ExchangeStoreDB
Date:          6/14/2010 12:12:51 PM
Event ID:      222
Task Category: Database recovery
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      server.company.com
Description:
At ’6/14/2010 11:12:50 AM’ the Microsoft Exchange Information Store Database ‘DATABASE’ copy on this server experienced a corrupted search catalog. The error returned by failover was “There is only one copy of this mailbox database (DATABASE). Automatic recovery is not available.”. Consult the event log on the server for other “ExchangeStoreDb” and “MSExchange Search Indexer” events for more specific information about the failures.

 

The important information is actually contained in the first event – the error code –2147215320.  This error code translates to CI_E_CONFIG_DISK_FULL.

 

To resolve this issue you can:

 

  • Increase the space allotted to the root disk hosting the mount point.
  • Change from utilizing mount points to drive letters.

 

Once this is done restarting the MSSearch services may be necessary so that initial catalog creation can occur.

Exchange 2007/2010 Performance Data Collection Script

0
Filed under Exchange 2007, Exchange 2010

Source: Mike lagase

In efforts to help streamline performance data collection on Exchange 2007/Exchange 2010 servers, I have created a powershell script that will automate the data collection for you. One of the nice features of the script is that you do not have to tell the script what roles are installed as it will automatically detect what is installed locally on the server, thus adding the appropriate counters for you. Previously, you had to manually select an XML file from here for Exchange 2007 servers and here for Exchange 2010 servers and then import it in to the performance console.

I’ve seen a lot of cases that use the previous Perfwiz utility, but unfortunately, this was originally designed to collect data for Exchange 2003 servers and was never updated to support the later versions of Exchange. This older version of Perfwiz should never be used to troubleshoot performance issues for versions later than Exchange 2003 as the pertinent counters are not being collected to accurately troubleshoot a performance issue.

During the development phase of this script, it was found that starting with Windows 2003 x64 that the log roll mechanism no longer worked properly and stopped once the maximum log file size was hit. Even though this worked previously in on Windows 2003 x86 versions, something changed on the 64-bit platform which prevented this from working. This problem is also inherent in the Windows 2008 operating system, but eventually was resolved in Windows 2008 R2. The script works around all of these issues to help you collect the right data at the right time by doing the following:

  • If Windows 2003 x64 and –circular switch not specified, then roll log to next log file once maxsize is reached or duration time is hit, whichever one is first.
  • If Windows 2008 RTM/SP1/SP2 and –circular switch not specified, then roll log every 4 hours. If Interval is set to less than 30 seconds, then roll log every hour.

IMPORTANT: To help save on the disk space consumed to write these log files out, the *default duration* is set to 8 hours. This time duration should be enough to capture most performance cases during the day, but if longer durations are needed, then refer to the switches listed in the table below to help set the desired configuration for your needs.

Listed below are the switches that can be used with this script at the time of this posting. New switches will be added as time goes on. These switches should help allow you to collect the right data at the right time and also allows the flexibility to set the appropriate settings.

Parameter

Description

-help or -?

Provides help regarding the overall usage of the script

-circular

Turns on circular logging to save on disk space. Negates default duration of 8 hours

-delete

Deletes the currently running Perfwiz data collection

-duration

Specifies the overall duration of the data collection. If omitted, the default value is (08:00:00) or 8 hours

-EseExtendedOn

Enables Extended ESE performance counters

-EseExtendedOff

Disables Extended ESE performance counters

-filepath

Sets the directory location of where the blg file will be stored

-full

Defines a counter set that includes all Counters/instances

-interval

Specifies the interval time between data samples. If omitted, the default value is (00:00:30) or 30 seconds

-maxsize

Specifies the maximum size of blg file in MB. If omitted, the default value is 512

-query

Queries configuration information of previously created Exchange_Perfwiz Data Collector

-start

Starts Exchange_Perfwiz data collection

-stop

Stops the currently running Perfwiz data collection

-StoreExtendedOn

Enables Extended Store performance counters

-StoreExtendedOff

Disables Extended Store performance counters

-threads

Specifies whether threads will be added to the data collection. If omitted, threads counters will not be added to the collection

-webhelp

Launches web help for script

For additional information, you can check out the website that includes the latest 1.3 version download at http://code.msdn.microsoft.com/ExPerfwiz.

If you have an issue with this script or have a feature suggestion, use the Discussions/Issue Tracker tabs on the Experfwiz page listed above. There are also additional examples of how to run the script with additional switches on the site.

Exchange Server 2007 Service Pack 3 released

0
Filed under Exchange 2007

Microsoft Exchange Server 2007 Service Pack 3 (SP3) has been designed specifically to meet the challenges facing our customers and to help address the needs of all the different businesses and organizations utilizing our Exchange Server 2007 enterprise messaging system.

Exchange Server 2007 SP3 is a mission-critical communications tool that enables employees to be more productive and access their information anywhere and anytime while providing a messaging system that enables rich, efficient access to e-mail, calendar items, voice mail, and contacts.

For administrators, Exchange Server 2007 SP3 provides further flexibility with the addition of Windows Server 2008 R2 support for server roles and Windows 7 support for the Exchange management tools. These additions, along with enhancements for the advanced protection options against e-mail security threats, such as spam and viruses and the tools which help manage internal compliance and high availability needs provide Exchange administrators with the tools they need to manage their Exchange 2007 environments efficiently.

For an overview of the new features that are available in Exchange Server 2007 SP3, see What’s new in Exchange Server 2007 SP3

Download Exchange Server 2007 SP3 here

Microsoft Security Bulletin MS10-024 released

0
Filed under Exchange 2007, Exchange 2010

We have released security updates for the following versions of Exchange:

  • Security Update for Exchange 2000 Server (KB976703)
  • Security Update for Exchange Server 2003 Service Pack 2 (KB976702)
  • Update Rollup 10 for Exchange Server 2007 Service Pack 1 (KB981407)
  • Update Rollup 4 for Exchange Server 2007 Service Pack 2 (KB981383)
  • Update Rollup 3 for Exchange Server 2010 (KB981401)

Security related changes for Exchange 2007 and Exchange 2010 ship as Update rollups following the cumulative servicing model. However we have tried to keep the number of non-security related changes in these rollups down to a minimum.

More information can be found in the security bulletin at Vulnerabilities in Microsoft Exchange and Windows SMTP Service Could Allow Denial of Service (981832)

Source: The Exchange Team

Update Rollup 3 for Exchange Server 2007 Service Pack 2 Released

0
Filed under Exchange 2007

Download here

Detailed description here

Managing the default behaviour for Duplicate Items is now possible

0
Filed under Exchange 2007

As written in an earlier article, I experienced that Duplicate Items was removed by default when moving/importing/exporting mailboxes.

With the release of Update Rollup 2, Microsoft made it possible to specify whether Duplicate Items should be deleted or not, which I think is great news. I do still believe that default behaviour should be that nothing is deleted, but at least it is now possible to control it.

Please see KB875990 for detailed info.

~Christian

Triaging Exchange Performance issues related to AD, Networking and DNS performance

0
Filed under Active Directory, Exchange 2007, Exchange 2010

Ken Brumfield just posted this great article at the msexchangeteam blog

In many organizations the skill sets that administer Exchange, Active Directory (AD), Domain Naming System (DNS), and the network infrastructure are often segregated. Since Exchange is heavily dependent on communication with AD and that communication must traverse the network, the ability for the Exchange Administrator to have a basic understanding of how each of these components can be troubleshot is useful. Furthermore, often times the DNS, network, and AD administrators are not familiar with how Exchange is dependent on their services and thus are not fully prepared to help an Exchange administrator isolate production issues. As such, by the end of this it is hoped that there will be enough information to allow the Exchange, DNS, network, and AD administrators to each collect the data necessary to identify the majority of the issues.

There is some required reading that is necessary in order to understand much of the content that follows. Rather than reiterate all of the pre-requisite knowledge here, reviewing the following content might be helpful:

To start with, an understanding of what the performance counters “LDAP Read Time” and “LDAP Search Time” track is very useful (as identified in Ruling Out Active Directory-Bound Problems and Monitoring Common Counters: Exchange 2007 Help). One knows that once these counters approach or exceed the recommended thresholds, troubleshooting outside of Exchange needs to begin. Therefore, the question, “What are the potential contributors to high values for these counters?” is thus raised. Since these counters are installed with Exchange and are tracked within the DSAccess /ADAccess components, depending on the version of Exchange, there are a number of dependencies that Exchange does not have visibility into that the troubleshooter needs to be cognizant of when evaluating where the source of the delay is incurred. In order to provide a clearer picture of what needs to be considered, below is a walkthrough of a somewhat simplified list of events that happens after the clock starts ticking (reference How Active Directory Searches Work for greater detail):

1. WLDAP32.DLL receives the request from one of the Exchange processes. It has to locate a Global Catalog (GC) first.

2. DNS query traverses the network. Unresponsiveness or degraded responsiveness from DNS servers will degrade the overall performance of the query.

3. WLDAP32.DLL submits the query to the GC.

4. If not already started, a Transmission Control Protocol (TCP) session is established, the Lightweight Directory Access Protocol (LDAP) query traverses the wire.
Note: since TCP requires a 3 stage handshake before the session and in turn windowing can work, multiply network latencies by 3 to figure out how much time it takes just to establish the session (thus that 10 ms latency becomes 30 ms delay even before the Exchange server submits the query).

5. The TCP data transmitted up the networking stack to LSASS.exe listening on the LDAP ports.

6. The query is processed by the GC and searches through the database to return the results.

7. The data is sent out the Network Interface Card (NIC) on the GC.

8. The query is received via WLDAP32.DLL from the GC.

a. If there are multiple pages all pages need to be returned and stored in a data structure within DSAccess / ADAccess. Each of these requires traversal of the network and resubmission of the query.

b. If there are a large quantity of values in the requested attribute (think group memberships), these all need to be retrieved and returned. This results in multiple queries to the GC. This may require steps 1 – 5 to recur.

As can be seen from the above set of steps a lot of the performance delays are heavily dependent on network latency and network performance. In fact the only portion of that number that is actually impacted by the GC performance itself is step 5. As such, in addition to troubleshooting any potential performance issues on the GC, it is highly advantageous to collect network trace data when issues do occur, preferably from both sides of the conversation.

Summary of Data needed to troubleshoot

Exchange Server – Having this data from both sides is important for comparison purposes (i.e. is the processor spike on the DC correlating with the degraded performance in Exchange)

  • Performance Counters specified in the referenced articles:
  • Network Trace from the Exchange server side

Note: To ease collection of the Exchange performance data reference “Mike Lagase : Perfwiz replacement for Exchange 2007″

AD Server -

DNS Server – not all organizations use Microsoft DNS servers, but for the purposes of this article the assumption that a Microsoft DNS server is in use.

  • Network Trace from the DNS server
  • Performance Data
    • Windows 2008/2008 R2 – start the built in Data Collector Set “Reliability and Performance\Reports\System\System Performance” and use the data collector set.
    • Windows 2003 – SPA Select the System Overview report
    • Performance counters – All DNS related counters.

How to triage where troubleshooting needs to happen

  • Network Infrastructure issues -
    • Use the network trace to determine if the DNS server is responding in a timely fashion. Keeping in mind that Microsoft recommends the entire conversation happen in less than 50 ms in general, if the DNS servers are taking more of that 50 ms than the actual LDAP search, this could be problematic. Timely is also subjective to whatever is normal for the environment and base lining is helpful here. In general if the DNS server is on the same segment and performing properly, 1 to 2 ms or less is reasonable. Of course as always, it is recommended that the environment be base lined so that the expected performance is known.
    • Use the network trace to determine if the TCP session with the GC is being established in a timely fashion.
      Again, keeping in mind that there is a 50 ms performance threshold, if the TCP session establishment is taking more time than the actual LDAP search takes to complete, this could be problematic. Also, timely is also subjective to whatever is normal for the environment and base lining is helpful hear. In general, if the GCs are on the same segments and both the network and the GC are performing properly, sessions established in 1 to 2 ms or less is reasonable. Of course as always, it is recommended that the environment be base lined so that the expected performance is known.
  • AD Issues – Often AD infrastructures are large and the AD admins cannot determine which of the many GCs is in use by the affected Exchange server, thus the responsibility of pointing the AD support team to the right box to troubleshoot falls on the Exchange admin.
    • Use the network trace to find out which GC is having a large delay between the LDAP Request and LDAP Response packets.
    • Use the performance counters to narrow down to the box that is performing poorly.
      • Exchange 2007/2010 – MSExchange ADAccess Domain Controllers\LDAP Search Time and MSExchange ADAccess Domain Controllers\LDAP Read Time check the specific instances for values exceeding the recommended thresholds. This will report the specific GC (and underlying network path) that is not responding to Exchange as quickly as desired.
        Note: On Exchange 2007 SP2 and newer systems, the “MSExchange ADAccess Local Site Domain Controllers” can also be used in the same manner.
      • Exchange 2003 – MSExchangeDSAccess Domain Controllers\LDAP Search Time and MSExchangeDSAccess Domain Controllers\LDAP Read Time, check the specific instances for values exceeding the recommended thresholds. This will report the specific GC (and underlying network path) that is not responding to Exchange as quickly as desired.
      • Exchange 2000 – performance counters similar to the above did not exist. The only way to determine which GC is responding slowly is to analyze a network trace as described previously.

Next, identify bottlenecks within the GC (note: for the most part these basics apply to troubleshooting DNS performance as well):

While there are a large variety of potential issues, there are some basic things that can be eliminated before advanced troubleshooting need take place. The below guidance are the most basic remediation suggestions for the largest variety of these types of issues. Essentially this comes down to, “Ok, so the issue is identified, now what do I do?”

Since there is plenty of published information on how to isolate disk, processor, and/or network issues, please reference the excellent articles linked at the beginning for the recommended thresholds. Also, check out Performance Analysis of Logs (PAL), which automates the analysis of the performance data collected to help determine where the system is bottlenecking.

Disk bound – Once the issue is isolated to being disk bound, there are essentially two options, add memory or allow for increased disk IO (i.e. add spindles for direct attached storage).

  • Adding memory is not quite as cut and dry as just throwing in some sticks of RAM.
    • 32-bit systems – It makes sense to avoid rehashing the entire discussion of 32-bit OS architecture especially since 32-bit architecture is on its way out. Reference this support article for some useful info. Memory usage by the Lsass.exe process on domain controllers that are running Windows Server 2003 or Windows 2000 Server
    • 64-bit systems – Generally the easiest thing to do is to put enough RAM in the box to load the entire database (minus white space) in memory. As of this writing, even for the largest enterprises (16 GB to 32 GB databases), this is becoming quite inexpensive or easy to justify. If the box has enough memory to load the entire database already and disk IO is the issue, troubleshoot why the database is not being loaded. A couple tip:
      • Measure Process\Virtual Bytes\lsass to see if it is about (within 10%/20%) of the size of the database (minus white space) or larger. If it isn’t, troubleshoot why lsass isn’t growing.
        Ensure that other applications aren’t consuming large amounts of memory and preventing LSASS from growing like it wants to.
  • Increasing disk-throughput.
    • If RAM cannot be added (or additional RAM will provide no benefit) due to the limits of the 32-bit OS architecture migrate to 64-bit. If migrating to 64-bit is not an option, the only option left is to add more disk throughput. Assuming that the storage is local and not SAN attached, it essentially means add more spindles (talk to the SAN guys if the AD database is stored on the SAN).
    • Reducing disk IO to the database volume is another option. Look at options such as turning off backups and AV scans during production hours, move SYSVOL and/or the database logs to separate spindles. Just follow standard storage performance tuning recommendations. Also, IOs to the disk can be reduced by reducing the demand on the boxes either by adding more DCs to the environment or reducing client demand. SPA and Performance Logs and Alerts will help track down what else is using the volume.

Processor bound:

  • Ensure that LSASS is the process using the CPU, if not eliminate the problematic process.
  • If LSASS is running hot, then use SPA (Windows 2003) or Performance Logs and Alerts (Windows 2008 and up) to identify where the CPU is being consumed within LSASS.
  • If everything looks normal then the only option remaining is to add more processors to the box or more boxes to the infrastructure if there is high processor load across multiple systems.
    Note: In large infrastructures with multiple DCs and multiple Exchange servers, adding more hardware only makes sense if all of the boxes are experiencing high CPU utilization (close to or exceeding the thresholds in
    Ruling Out Active Directory-Bound Problems). If most or all of the boxes in the Exchange site are not experiencing high CPU utilization then there is probably a system specific reason for high CPU time. Look for hardcoded applications, improperly balanced load due to tuning LDAP Weights and Priorities (Check out Why you need Active Directory for Exchange Server 2007 for details on how this works), or anything else which may indicate why on GC is being singled out compared to the rest. Fix that issue before adding more hardware.

Network:

  • If the outbound queue length is > 0 sustained the easy fixes are:
    • Update the NIC drivers to the latest versions if possible
    • Disable the Scalable Networking pack features (SNP) on Windows 2003 base servers- An update to turn off default SNP features is available for Windows Server 2003-based and Small Business Server 2003-based computers. Check the network card settings to see if your driver can enable or disable certain SNP offloading features. Depending on the driver, if you disable these settings at the OS level, there is a possibility that they can still be enabled directly on the network card settings.
    • If the DCs are running Windows 2003 and the Exchange Servers are running on Windows 2008, then apply the Scalable Networking Pack rollup on the DCs to ensure that known compatibility issues do not occur. Also be aware of a known Windows 2008 TCP/IP setting issue in http://support.microsoft.com/kb/967224 that can affect overall network connectivity and performance.
    • Ensure that the NIC speed/duplex settings are properly set. MS recommendations, as of this writing, recommend both the GC and switch be set to 100/Full for 100 Mb segments and Auto/Auto for GigE segments. Check the Network Interface\Current Bandwidth performance counter to ensure that network card auto-negotiation is not changing the speeds the network card. This value should remain consistent at one value throughout the lifetime of the server being online.
    • Disable the load balancing/fault tolerance features of the NIC driver suite.
  • Ensure that Network Interface\Packets Outbound Errors performance counters remains at 0 all the time. Any increases in this value can indicate intermittent connectivity issues on the server.
  • If the network connection is using more 60% to 80% of the maximum bandwidth, the only solutions are to upgrade the available bandwidth (100Mb > GigE) or distribute the load across multiple servers/network connections.

Identifying the source of the GC load

The possibility exists that, despite the DC being either disk or processor bound, that the load is unnecessary. To determine this, the load on the box must be analyzed in greater detail than just the performance can provide. To that end, there are two main strategies for identifying the load on the box, both of which can be used concurrently. How to analyze this data is somewhat out of scope of this article, but the below bullets contain links to useful articles on how to use this data:

Conclusion

Data collection is key! Getting the right data when the problem occurs is absolutely critical to the restoring the health of the environment. Furthermore, as Exchange is the product suffering when its dependencies are not responding adequately, it falls on the Exchange administrator to do the leg work collecting the right data from the perspective of Exchange, and then isolating where the network, DNS, and AD administrators might need to look and start collecting data. Without this information, the network, DNS, and AD admins will be looking for a needle in a haystack and it is highly unlikely that they will find anything of use. Thus, once the Exchange admin has isolated the dependencies of concern, using the information provided here, it will be much easier to collect the data necessary from those systems to remediate any issues.

Update Rollup 2 for Exchange 2007 SP2 Released

0
Filed under Exchange 2007

Microsoft has released the Update Rollup 2 for Exchange 2007 Service Pack 2.

For info regarding fixes, please see KB972076

Download Update Rollup 2 here

Making sense of Exchange Logs using ExLogAnalyzer

0
Filed under Exchange 2007, Exchange 2010

Early 2008 we have posted a blog entry with a VB script that generates some pre-canned reports that are based on message tracking logs. The script has proven to be useful in understanding Microsoft’s Exchange work load and guide some design decision for Exchange 2010. This script was developed by Todd Luttinen, Principal Program Manager at Microsoft.

During the development of Exchange 2010, we needed to extended our log analysis beyond just message tracking and to answer a variety of questions that assist with design decisions. This exposed a bottle neck with having a single script that has all the parsing and analyzers bundled together.

This resulted in the creation of ExLogAnalyzer by Victor Boctor, Principal Architect at Microsoft. ExLogAnalyzer was developed in C# with the following goals:

  • Separation of syntax and semantics.
  • Multi-Server support (process log files that span multiple servers). Log events across servers are processed in chronological order.
  • Multi-Log Type support (process / cross reference logs of different log types to produce a single report). Log events across log types are processed in chronological order.
  • Provide an extensibility model to support rapid development and distribution of extensions (to support new log types) and analyzers (to encapsulate reporting logic).
  • Ability for the community to develop their own analyzers or even extensions.
  • Support for Exchange 2007 / 2010 log types.

The main shift in this model, compared to the previous script, is that ExLogAnalyzer is built as a framework that can be used to analyze Exchange as well as possibly any other log format. New log types are supported via plugins called “extensions”. Extensions are responsible for doing all the parsing and converting of log lines into events, where each event triggers a method and passes all the pre-parsed information as the event arguments. The specific reports are also implemented as plugins known as “analyzers”, where each analyzer handles the events it is interested in and does the appropriate accounting and report generation (typically in CSV format). Implementing each analyzer in isolation (rather than one script that answers multiple questions) makes it much simpler to develop, understand and distribute such analyzers. Such extensions and analyzers can also be easily shared given the plugin model. The following simple diagram summarizes the architecture of this tool:

The ExLogAnalyzer is now released to the community with the following extensions / analyzers available out of the box:

  • Message Tracking Log
    • MsgTrkTopSendersByDeliverLogAnalyzer – Generates the top 1000 senders based on mailbox deliveries. Messages to the internet are not counted.
    • MsgTrkTopSendersBySubmitLogAnalyzer – Provides an analysis of the sender load distribution based on number of messages sent from their mailboxes.
    • MsgTrkTopRecipientLogAnalyzer – Generates the top 1000 recipients based on mailbox deliveries. Messages to the internet are not counted.
    • MsgTrkMessageSizeDistributionLogAnalyzer – Provides an understanding of the message size distribution.
    • MsgTrkRecipientNotFoundLogAnalyzer – Discover and summarize recipients for which “Recipient Not Found” error was generated.
    • MsgTrkMailflowVisualizerLogAnalyzer – Generates a directed graph showing the server being analyzed and all the inbound / outbound mail flow paths.
    • MsgTrkComponentLatencyPercentileLogAnalyzer (E14) – Analyzes the latencies of the different components and determines the latencies experienced by the specified percentiles of messages.
    • MsgTrkDuplicateDeliveryLogAnalyzer – Analyzes the sources for duplicate deliveries to Store. Note that end users don’t see such duplicates.
    • MsgTrkEventFrequencyLogAnalyzer – Provides an understanding of the distribution of the event + source combinations.
    • MsgTrkEventTimeDistributionLogAnalyzer – Provides an understanding of the event distribution over time with a per hour resolution.
    • MsgTrkExpandLogAnalyzer – Analyzes the distribution list expansion load on the system.
    • MsgTrkReceiveLogAnalyzer – Analyzes the distribution of the sources for the messages received by a server or a set of servers.
  • Smtp Receive Log
    • SmtpReceiveWorkLoadLogAnalyzer – Analyzes the SMTP receive work load over time while tracking tarpitting, client time outs, etc.
    • SmtpReceiveDelayedAckLogAnalyzer (E14) – Analysis of delayed ack performance over time. This report provides an overview of the redundancy that is achieved for legacy systems via delayed ack.
    • SmtpReceiveFormatterLogAnalyzer – Re-writes the logs with each session in a separate file, it also reformats the log so that the common session information is included in the header, hence, making the session details more readable.
    • SmtpReceiveSeparatorLogAnalyzer – Re-writes the logs with each session in a separate file while maintaining the exact log format.
    • SmtpReceiveSessionIndexLogAnalyzer – Provides a summary of all sessions processed within the provided logs.
  • Connectivity Log
    • ConnectivityWorkLoadLogAnalyzer – An analyzer that samples the connections over time. This analyzer generates a CSV file per source (e.g. SMTP or MAPI).
    • ConnectivityStatsLogAnalyzer – An analyzer that provides the frequency of sessions, failed and DNS failures per source + destination combination.
    • ConnectivityFormatterLogAnalyzer – Re-writes the sessions as a file per session, moved all the common session information to the header to make the sessions more readable.


Sample Reports

Following are some samples to provide a feel of the outputs of some of these analyzers.

Mail Flow Visualizer (demonstrated possible visualization using directed graphs):

Message Size Distribution:

SmtpReceiveFormatterLog (log re-writing for splitting sessions and making them more readable):

# Session Id: 08CBDCECE3DDF231
# Start Time (local): 2009-07-28T11:07:46.922
# End Time (local): 2009-07-28T11:07:46.953
# Start Time (UTC): 2009-07-28T18:07:46.922Z
# End Time (UTC): 2009-07-28T18:07:46.953Z
# Disconnect Type: Local
# Connector Id: MyServer\MyServer_CrossForest
# Local End Point: 157.54.7.153:25
# Remote End Point: 157.54.71.39:4183

0000000,+,,
0000000,*,None,Set Session Permissions
0000000,*,SMTPSubmit SMTPAcceptAnyRecipient SMTPAcceptAuthenticationFlag SMTPAcceptAnySender SMTPAcceptAuthoritativeDomainSender BypassAntiSpam BypassMessageSizeLimit SMTPAcceptEXCH50 AcceptRoutingHeaders AcceptForestHeaders AcceptOrganizationHeaders SMTPAcceptXShadow,Set Session Permissions
0000000,>,220 MyServer E14 Cross Forest,
0000000,<,EHLO otherhost.otherforest.microsoft.com,
0000000,>,250-MyServer.redmond.corp.contoso.com Hello [157.54.71.39],
0000000,>,250-SIZE 10485760,
0000000,>,250-PIPELINING,
0000000,>,250-DSN,
0000000,>,250-ENHANCEDSTATUSCODES,
0000000,>,250-AUTH,
0000000,>,250-8BITMIME,
0000000,>,250-BINARYMIME,
0000000,>,250-CHUNKING,
0000000,>,250-XEXCH50,
0000000,>,250 XSHADOW,
0000000,<,XSHADOW 3333YTkxYjEtYzE1OC00NDcxLWI4OTktMDA2NDI5YmVmZWRlQFRLNUVYMTRNTFRXNjUxLndpbmdyb3VwLndpbmRlcGxveS5udGRldi5taWNyb3NvZnQuY39t,
0000000,>,250 q7rdaFIdKk3NNRTbjRsjrQ==,
0000000,<,MAIL FROM:<
sender@contoso.com> SIZE=25477 XSHADOW=70136df4-c89b-4700-9654-b642c4eb78bb,
0000000,*,08CBDCECE3DDF231;2009-07-28T18:07:46.922Z;1,receiving message
0000000,<,RCPT TO:<
receiver@contoso.com> ORCPT=rfc822;receiver2@contoso.com,
0000000,>,250 2.1.0 Sender OK,
0000000,>,250 2.1.5 Recipient OK,
0000000,<,XEXCH50 1136 2,
0000000,>,354 Send binary data,
0000015,>,250 2.0.0 XEXCH50 OK,
0000015,<,BDAT 25477 LAST,
0000031,>,250 2.6.0 <
DB82FD8C490D4F43ACE766C04B23A7050F0F12@someserver.otherforest.contoso.com> [InternalId=16796908] Queued mail for delivery,
0000031,<,XQDISCARD 50,
0000031,>,251 OK, no discard events,
0000031,<,QUIT,
0000031,>,221 2.0.0 Service closing transmission channel,
0000031,-,,Local

Top Senders by Submit (analysis yielding CSV – full report has top 1000):

MailboxServer

Sender

Count

mbx01.contoso.com

support_person@contoso.com

162

mbx01.contoso.com

sales_person@contoso.com

124

mbx02.contoso.com

ceo@contoso.com

61

Sender Distribution by Submit (analysis yielding CSV):

SentMsgRange

Count

Percent

Percentile

1-5 msgs

23310

86.59%

86.59%

6-10 msgs

3078

11.43%

98.02%

11-20 msgs

497

1.85%

99.87%

21-30 msgs

28

0.10%

99.97%

31+ msgs

7

0.03%

100.00%

Distribution Group Expansion Analyzer (analysis yielding CSV):

Recipient

RecipCount

ExpandCount

info@contoso.com

1

2242

skiing@contoso.com

43

848

parents@contoso.com

223

203

all@contoso.com

2325

17


Getting started

  • Download ExLogAnalyzer from here.
  • Checkout the Power Point slide deck included in the download for more details about ExLogAnalyzer.
  • Use ExLogAnalyzer and its distributed sample analyzers to analyze your logs.
  • Develop your own analyzers. Visual Studio and Visual C# Express Edition are the recommended tools. However, you can use Notepad or your favorite editor, given that ExLogAnalyzer detects and compiles the analyzer CSharp files at runtime.
  • Provide us with feedback about ExLogAnalyzer, sample analyzers or the development process.
  • Share your analyzers or ideas for useful new analyzers with the Exchange community.

Source: MSExchangeTeam

Exchange Management Tool Interoperability

Filed under Exchange 2007, Exchange 2010

It is common for Exchange organizations to include different versions of Exchange. Interoperability scenarios present challenges to administrators for maintaining the different tool sets required to manage different versions of recipient and configuration objects in the organization. It is important to understand the implications of using Exchange 2010 management tools in these situations. Some of this information may change in the future.

Exchange Object Versions

Exchange management tools generally take some action against objects that are stored in the Active Directory (AD) directory. These objects can be recipient objects (Mailbox enabled accounts, mail enabled accounts, mail contacts, etc…) or they can be Exchange configuration objects (Exchange servers, mailbox databases, connectors, etc…)

Exchange uses a property that tags an object as “belonging” to one specific version of Exchange. The property in AD is msExchangeVersion. To quickly check the Exchange version of an object, from the Exchange Management Shell, use the “Get” cmdlet for that object type, and issue a command like the following which gets the ExchangeVersion property value for a mailbox enabled user:

[PS] C:\> Get-Mailbox user1 | Format-List ExchangeVersion
ExchangeVersion : 0.10 (14.0.100.0)

In this example, the version is 14.0.100. This is the version of Exchange that was used to create this recipient object. For a management tool to be able to manage this object, it must be for version 14.0.100 or higher.

All Exchange objects are stamped with an ExchangeVersion value, and it is in this way that management tool interoperability is controlled.

Exchange 2003 Interoperability

The Exchange System Manager (ESM) is the primary management interface for Exchange 2003. The ESM does not have a direct interface for managing recipient objects, instead relying on the Active Directory Users and Computers (ADUC) to be installed on the same machine to expose property pages for recipient objects. The following limitations apply to management tool interoperability:

  • Exchange 2010 management tools can be used to view Exchange 2003 recipient objects, but not the other way around.
  • The ESM cannot be used to manage any configuration objects for Exchange 2010.
  • The Exchange 2010 management tools can be used to view certain Exchange 2003 configuration objects, but not make any modifications.

Exchange 2007 Interoperability

Both Exchange 2007 and Exchange 2010 use their own versions of EMC and EMS. Interoperability limitations between Exchange 2007 and Exchange 2010 management tools can be more difficult to understand because of the similarity between the tools.

The following matrix will help to determine what can be done from each tool.

EMC Management Tool Interoperability:

2003 Object ESM on 2003 EMC on 2007 EMC on 2010
View Users, Contact, DDL SUPPORTED SUPPORTED SUPPORTED
Manage Users, Contacts, DDL SUPPORTED NOT SUPPORTED NOT SUPPORTED
Provision (Create) mailboxes SUPPORTED NOT SUPPORTED NOT SUPPORTED
View Mailboxes SUPPORTED SUPPORTED SUPPORTED
Manage Mailboxes (Edit/Remove) SUPPORTED NOT SUPPORTED NOT SUPPORTED
Manage Mobile Devices SUPPORTED NOT SUPPORTED NOT SUPPORTED
Import MBX from PST and Export to 2007 (Open Issue) SUPPORTED NOT SUPPORTED NOT SUPPORTED
View Disconnected MBXs SUPPORTED SUPPORTED SUPPORTED
Connect Disconnected Mailbox SUPPORTED NOT SUPPORTED NOT SUPPORTED
Connect to Public Folder DB SUPPORTED NOT SUPPORTED NOT SUPPORTED
Manage Send As permissions N/A SUPPORTED SUPPORTED
manage Full Access permissions N/A SUPPORTED SUPPORTED
Enable/Disable UM N/A N/A N/A
Manage Global Objects (Address Lists/GALs) SUPPORTED NOT SUPPORTED NOT SUPPORTED
Provision (Create) OAB SUPPORTED NOT SUPPORTED NOT SUPPORTED
View OAB SUPPORTED SUPPORTED SUPPORTED
Manage EAP N/A N/A N/A
Manage MRM Objects (Default folders, custom folders, mailbox policies) N/A N/A N/A
View Transport Rules & Journal Rules N/A N/A N/A
Manage remote domains, accepted domains, send connectors, Edge subscriptions N/A N/A N/A
View UM Dial Plans,UM IP Gateways,UM Mailbox,UM Auto Attendants N/A N/A N/A
Manage UM Dial Plans,UM IP Gateways,UM Mailbox,UM Auto Attendants N/A N/A N/A
Manage Active Sync Mailbox Policies N/A N/A N/A
View per-server objects (Servers, Virtual directories,POP3,IMAP4,Receive Connectors) Servers, Virtual Directories,POP3,IMAP4 NOT SUPPORTED NOT SUPPORTED
Manage Databases SUPPORTED NOT SUPPORTED NOT SUPPORTED
View Databases SUPPORTED NOT SUPPORTED NOT SUPPORTED
 2007 Object ESM on 2003 EMC on 2007 EMC on 2010
View Users, Contact, DDL SUPPORTED SUPPORTED SUPPORTED
Manage Users, Contacts, DDL NOT SUPPORTED SUPPORTED SUPPORTED
Provision (Create) mailboxes NOT SUPPORTED SUPPORTED NOT SUPPORTED
View Mailboxes SUPPORTED SUPPORTED SUPPORTED
Manage Mailboxes (Edit/Remove) NOT SUPPORTED SUPPORTED SUPPORTED
Manage Mobile Devices NOT SUPPORTED SUPPORTED NOT SUPPORTED
Import MBX from PST and Export to 2007 (Open Issue) NOT SUPPORTED SUPPORTED SUPPORTED
View Disconnected MBXs SUPPORTED SUPPORTED SUPPORTED
Connect Disconnected Mailbox NOT SUPPORTED SUPPORTED NOT SUPPORTED
Connect to Public Folder DB NOT SUPPORTED SUPPORTED SUPPORTED
Manage Send As permissions N/A SUPPORTED SUPPORTED
manage Full Access permissions N/A SUPPORTED SUPPORTED
Enable/Disable UM N/A SUPPORTED NOT SUPPORTED
Manage Global Objects (Address Lists/GALs) NOT SUPPORTED SUPPORTED SUPPORTED
Provision (Create) OAB SUPPORTED SUPPORTED NOT SUPPORTED
View OAB SUPPORTED SUPPORTED SUPPORTED
Manage EAP N/A SUPPORTED SUPPORTED
Manage MRM Objects (Default folders, custom folders, mailbox policies) N/A SUPPORTED SUPPORTED
View Transport Rules & Journal Rules N/A SUPPORTED NOT SUPPORTED
Manage remote domains, accepted domains, send connectors, Edge subscriptions N/A SUPPORTED SUPPORTED
View UM Dial Plans,UM IP Gateways,UM Mailbox,UM Auto Attendants N/A SUPPORTED SUPPORTED
Manage UM Dial Plans,UM IP Gateways,UM Mailbox,UM Auto Attendants N/A SUPPORTED SUPPORTED
Manage Active Sync Mailbox Policies N/A SUPPORTED SUPPORTED
View per-server objects (Servers, Virtual directories,POP3,IMAP4,Receive Connectors) Default SMTP Virtual Server Directory
Server Objects
SUPPORTED NOT SUPPORTED
Manage Databases NOT SUPPORTED SUPPORTED NOT SUPPORTED
View Databases SUPPORTED SUPPORTED NOT SUPPORTED

Additional Scenarios

 

Move Mailbox

  • Exchange Server 2007 EMC cannot move an Exchange Server 2007 mailbox to an Exchange Server 2010 server, or move an Exchange Server 2010 mailbox to an Exchange Server 2010/Exchange Server 2007 server.
  • Exchange Server 2010 EMC can move an Exchange Server 2010/Exchange Server 2007 mailbox to an Exchange Server 2010/Exchange Server 2007 server.
    • When an Exchange Server 2007 mailbox is moved to an Exchange Server 2010 sever, the mailbox is upgraded to Exchange Server 2010 version. After the version upgrade, the mailbox should still work with the associated policies (ActiveSync, OWA, UM, etc) that are in a down-version. (Open Issue)
    • When moved back to an Exchange Server 2007 server from an Exchange Server 2010 server, the mailbox is downgraded to Exchange Server 2007.

Move OAB

  • Exchange Server 2010 EMC can move an Exchange Server 2007/Exchange 2003 OAB to an Exchange Server 2010/Exchange Server 2007/Exchange 2003 server.
  • Exchange Server 2010 EMC can move an Exchange Server 2010 OAB to an Exchange Server 2007/Exchange 2003 server.

Send Connector Source/Send Server

  • Exchange Server 2007 EMC can set either an Exchange Server 2007 or Exchange Server 2010 transport server as the source server of a send connector.
  • Exchange Server 2010 EMC can set either an Exchange Server 2010 or Exchange Server 2007 transport server as the source server of a send connector.

 

Queue Viewer

  • Exchange Server 2007 Queue Viewer snap-in cannot connect to an Exchange Server 2010 server to view Exchange Server 2010 queues or messages.
  • Exchange Server 2010 Queue Viewer snap-in cannot connect to an Exchange Server 2007 server to view Exchange Server 2007 queues or messages.

The limitations that are imposed in the EMC can be translated to limitations that also exist in EMS when using the same underlying PowerShell commands. For example, when viewing the properties for a mailbox in EMC, the Get-Mailbox command is used in the background to populate the property information. If a change is made, the Set-Mailbox command is used to make the change to the mailbox object. In some situations it may be possible to view information for an object that was created with one tool version, but not make any changes.

The limitations depend on specific conditions and can be related to the configuration management levels exposed in EMC: Organization Configuration, Server Configuration and Recipient Configuration.

Organization Configuration

Organization objects are global in nature and can be managed using both versions of management tools with some specific exceptions.

Exchange 2010 mailbox and public folder databases only appear under the Organization Configuration node in the Exchange 2010 EMC. Exchange 2007 mailbox and public folder databases appear under the Server Configuration node in Exchange 2007 EMC.

Messaging Records Management features for Exchange 2010 (MRM v2) only appear under the Organization Configuration node in the Exchange 2010 EMC. MRM v1 features appear in both versions and can be managed from both tools.

Server Configuration

Server management is very clear cut in EMC interoperability scenarios. Exchange 2007 servers do not appear in the result pane of the Exchange 2010 EMC and vice versa.

EMS commands for server configuration can be used from either version of EMS as long as the cmdlet does not depend on a specific configuration object version on the target. A message is generated and no changes are made if the cmdlet is not compatible.

Recipient Configuration

Recipient Objects that are created with Exchange 2007 management tools can be managed using both tool sets. Recipient Objects that are created using Exchange 2010 management tools can only be managed using Exchange 2010 management tools. Exchange 2007 SP2 management tools have logic to validate actions based on object type. When attempting to manage an Exchange 2007 object, an informational message is seen similar to this:

After clicking the OK button the properties are not activated for change but can be viewed. A similar message is generated with trying to modify an Exchange 2010 recipient object using an Exchange 2007 EMS command as shown in the following example where Set-Mailbox is used in Exchange 2007 EMS to attempt a change to an Exchange 2010 mailbox:

[PS] C:\>set-mailbox user2 -CustomAttribute1 “some value”
Set-Mailbox : Object is read only because it was created by a future version of Exchange: 0.10 (14.0.100.0). Current supported version is 0.1 (8.0.535.0).
At line:1 char:12
+ set-mailbox <<<< user2 -CustomAttribute1 “some value”
+ CategoryInfo : NotSpecified: (0:Int32) [Set-Mailbox], InvalidADObjectOperationException + FullyQualifiedErrorId : 855E94FC,Microsoft.Exchange.Management.RecipientTasks.SetMailbox

Using Get-Mailbox in this instance works as expected because the command only retrieves information but does not make any changes.

Side-by-Side Management Tools

Exchange 2010 and Exchange 2007 Service Pack 2 (SP2) make it possible to deploy the different versions of Exchange Management Shell (EMS) and Exchange Management Console (EMC) from both products on the same workstation in a configuration called Side-by-Side Deployment. Both sets of management tools are then available from the Programs menu as shown:

Both versions of EMC and EMS can be opened and used independently from the other version. The following shot shows both versions of EMC open on the same machine. Alternatively, the snap-in for Exchange 2007 EMC and Exchange 2010 EMC can both be added to the same console.

Prerequisites for Side-by-Side Deployment

The following Windows operating systems are supported for the Exchange Management Tool role:

  • Windows Vista SP2 x64 bit
  • Windows 2008 SP2 x64 bit

The prerequisites for installing Exchange 2007 and Exchange 2010 Management tools in a side-by-side deployment are:

  • .Net Framework 3.5 and 3.5 SP1
  • Windows Remote Management v2.0
  • Windows PowerShell v2.0
  • Windows Installer version 4.5 is required to install Exchange 2007 SP2 on Vista SP2, but is not required on Windows Server 2008 SP2 because it is already included.
  • Internet Information Services (IIS) features IIS 6 Metabase Compatibility (Web-Metabase) and IIS 6 Management Console (Web-Lgcy-Mgmt-Console).

Both sets of management tools use similarly named files. To limit confusion between file sets, the Exchange 2007 files and Exchange 2010 files are stored in different locations. The Exchange 2007 files by default are stored in folders directly under the Program Files\Microsoft\Exchange Server directory while the Exchange 2010 files are stored in the V14 folder in the same directory as shown:

Source: MsExchangeTeam