• New Transporter released today - things are getting busy

    New build of the transporter shipped today, you can download it here:

    http://www.microsoft.com/downloads/details.aspx?FamilyID=35fc4205-792b-4306-8e4b-0de9cce72172&DisplayLang=en

    This is the transporter release that has been in the works for a while now. It includes new powershell commands to assist in migrating from any generic pop3 or imap server to Exchange 2007.

     A quick quote on that:

    Key Features of POP/IMAP migration tools:
    Tools are designed to enable an administrator to bulk migrate mailboxes from generic POP/IMAP servers to Exchange.
    • General extraction of mailbox content from generic POP/IMAP servers
         o Test has migration of mailbox content from Exchange, Domino, GMAIL, AOL, Comcast, IMAP UW Server on Unix, Mail.RU,Communicate Pro
         o Extraction can use individual mailbox credentials or through an administrative credential
    • Migration to Exchange 2007 using the Transporter Engine and Exchange Web Services
         o Migrates content into existing mailboxes using Exchange Web Services
         o Preserves all mail formatting, address headers and iCAL content
    • Easy to use MMC Wizard GUI and PowerShell tasks
         o GUI can be used to load and track bulk lists of mailboxes to migrate
         o PowerShell can be used for automation/advanced migration

     

    So here recently i've had a couple things i wanted to blog about, but we have been incredibly busy the last few weeks. Today i read an article that might explain why, and gives a little insight into how the next few months might go:

    http://www.internetnews.com/ent-news/article.php/3722791

    Specifically this section of the article which Justin pointed out to me this morning:


    That rhetoric is echoed by his boss. "In the last six months of 2007, in the enterprise customer segment alone, more than 300 firms representing 2.8 million people began the move to Exchange Server, Office SharePoint Server and the Office suite," Chris Capossela, corporate vice president in the Microsoft Business Division, said in a statement. "That’s a 164% increase over the same period in 2006 [and] we’re already on track to exceed these numbers in 2008," he added.
    "

    Busy times... busy times

  • The server to which the application is connected cannot impersonate the requested user due to insufficient permission.

    PROBLEM:  When running The Transporter for either Lotus Notes or IMAP migrations you may encounter the following error: 

     

    Summary: 1 item(s). 0 succeeded, 1 failed.
    Elapsed time: 00:01:00


    email@address.com
    Failed

    Error:
    Migration does not happen for the user (email@address.com) due to some errors. All the mailbox items belonging to this user will be ignored.

    System.Web.Services.Protocols.SoapException: The server to which the application is connected cannot impersonate the requested user due to insufficient permission.
       at Microsoft.Exchange.Services.RequestSoapHeaderServiceExtension.ProcessSoapHeaders(SoapMessage message, Object responsibleObject)
       at Microsoft.Exchange.Services.RequestSoapHeaderServiceExtension.AfterDeserializeRequest(SoapMessage message)
       at Microsoft.Exchange.Services.ServiceExtensionManager.DoAfterDeserializeRequest(SoapMessage message)
       at Microsoft.Exchange.Services.ServiceExtensionManager.<>c__DisplayClass1.<ProcessMessage>b__0()
       at Microsoft.Exchange.Diagnostics.ExWatson.<>c__DisplayClass8.<SendReportOnUnhandledException>b__4()
       at Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch(TryDelegate tryDelegate, FilterDelegate filterDelegate, CatchDelegate catchDelegate)
       at Microsoft.Exchange.Diagnostics.ExWatson.SendReportOnUnhandledException(MethodDelegate methodDelegate, IsExceptionInteresting exceptionInteresting, Boolean terminating)
       at Microsoft.Exchange.Diagnostics.ExWatson.SendReportOnUnhandledException(MethodDelegate methodDelegate, IsExceptionInteresting exceptionInteresting)
       at Microsoft.Exchange.Services.Core.ServiceDiagnostics.TraceErrorOnUnhandledException(MethodDelegate methodDelegate)
       at Microsoft.Exchange.Services.ServiceExtensionManager.ProcessMessage(SoapMessage message)
       at System.Web.Services.Protocols.SoapMessage.RunExtensions(SoapExtension[] extensions, Boolean throwOnException)
       at System.Web.Services.Protocols.SoapServerProtocol.CreateServerInstance()
       at System.Web.Services.Protocols.WebServiceHandler.Invoke()
       at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()


    Warning:
    Impersonation failed for the user (email@address.com) Error: (ErrorImpersonationDeniedThe server to which the application is connected cannot impersonate the requested user due to insufficient permission.).

     

    RESOLUTION:

    This error lets you know that you lack permissions to impersonate the user. The Active Directory user used to perform the migration must have the permission to impersonate the users to inject mail into their mailboxes.

    This permission can be set using an Exchange Management Shell command:

    This adds the permission to one CAS (Client Access Server):
    Add-ADPermissions -Identity 'DN_of_ClientAccessServer' -User 'domain\username'  -ExtendedRights ms-Exch-EPI-Impersonation

    This adds the permission to all CAS servers:
    foreach ($exchangeServer in Get-ExchangeServer)
    {
         if ($exchangeServer.ServerRole -match 'ClientAccess')
         {
              Add-ADPermission -Identity $exchangeServer.DistinguishedName -User 'domain\user' -ExtendedRights ms-Exch-EPI-Impersonation
         }

    }
       
    Where domain\user is the user performing the migration.

  • Microsoft Exchange Transport Log Search service will not start and a series of 4999 events are logged

    Problem

    On Exchange 2010, you may notice the below event firing rapidly. In our scenerio we were seeing the service attempt to start and go down approximatly 420 times an hour, logging the below 4999 every time. The only action that was taken prior to this problem appearing was the instalation of Exchange 2010 Sp2. It has been noted that this same problem has occured while installing various RollUps (RUs) as well.

     Log Name:      Application
    Source:        MSExchange Common
    Event ID:      4999
    Task Category: General
    Level:         Error
    Keywords:      Classic
    User:          N/A
    Description:
    Watson report about to be sent for process id: #, with parameters: E12, c-RTL-AMD64, 14.02.0247.005, MSExchangeTransportLogSearch, MSExchangeTransportLogSearch, M.E.T.L.S.MailFlowStatistics.InitializeRecord, System.OutOfMemoryException, a3ee, 14.02.0247.003.
    ErrorReportingEnabled: False

     

    Resolution

    When we have seen the problem in the past, the problem has happened when a function attempted to format information from these files. The end result is a IndexOutofRangeException when trying to read the contents of temporary stored statistics.

    1. Rename the following directory (to preserve existing data for root cause if desired):

           Program Files\Microsoft\Exchange Server\V14\TransportRoles\Logs\ActiveUsersStats\Backup

    2. Restart the Microsoft Exchange Transport Log Search service


    Upon restarting the service a new Backup directory is created by the service and the error will not persist.

     

  • Could not create one or more attachments for item \ The operation has timed out

    PROBLEM:

    When attempting to run move-dominomailbox you may receive the following error:

     

    WARNING: Could not create one or more attachments for item (Subject of the message (message.mail)) for the user User@domain.com
    The message was migrated without attachments. This error might be due to configuration limitation on the server.
    Error details: The operation has timed out
    Please refer to help for the configuration changes needed

     

    RESOLUTION: 

    This error is typical when we time out trying to send the SOAP message over HTTP and timing out due to IIS's timeout setting.

    1. First lets look at the size of the message we are migrating across on Domino.
    2. Look at the web.config for the EWS virtual directory to see what the maxRequestLength is set to. This needs to be higher than the size of the message we are trying to push across.
    3. Look at the timeout setting in IIS Manager for the Website that EWS falls under
         a. Open IIS Manager
         b. Right click/Properties of the Website EWS is under
         c. On the Web Site tab, adjust the Connection timeout from 120 seconds upwards depending on how large the message is and how long it takes to send via SOAP

  • The chicken or the egg. How to get current ESE dll's from .msp packages to run Jetstress against without installing Exchange

    You want to jetstress some new hardware, but may not be running the latest build of ESE and need to do comprehensive testing with the latest build of ESE to make sure the results are right.

     

    The typical approach most people use is to install Exchange, get it patched up and then stop all of the services manually. While this does work, its not exactly guidance and can be a little problematic.

     

    Now lets look at our jetstress guidance:

    http://technet.microsoft.com/en-us/library/bb643095(v=EXCHG.80).aspx 

     

    "Jetstress testing should be performed before you install Exchange on the server. If you have already installed Exchange Server, you should still copy the ESE database modules to the Jetstress installation directory. If you are testing with a different version of Exchange Database Engine than the one installed with Exchange Server, you may have to uninstall the existing Exchange Database Engine counters before you run Jetstress. You can do this by running unlodctr ESE at a command prompt. However, you will still have to uninstall and reinstall the Exchange version of the Exchange Database Engine counters when testing is completed."

     

    What can we do about this?

    1. Obtain the latest patch that includes ESE fixes. Specifically we need:
      1. ESE.DLL
      2. ESEPERF.DLL
      3. ESEPERF.INI
      4. ESEPERF.HXX
    2. Download msix from http://hstewart.members.winisp.net/downloads/msix.zip  (source: http://blogs.msdn.com/b/heaths/archive/2006/04/07/571138.aspx)
    3. Run : msix PathtoLatestPackage.msp /out "C:\Directory to output files"
    4. In the output directory, you should now see files such as "PCW_CAB_E12_DAT". Look for the largest file as depending on the version of Exchange, this file name will be different)
    5. Rename PCW_CAB_E12_DAT to PCW_CAB_E12_DAT.CAB
    6. Double click the cab to access the .dll's
    7. Copy the files needed to the appropriate Jetstress directory