Tuesday, December 14, 2010

Exchange Transporter Suite troubleshooten

Mijn collega Sander Weenen heeft onlangs een migratie van MDaemon naar Exchange 2007 uitgevoerd. MDaemon is een POP/IMAP mailserver dus de datamigratie kan uitgevoerd worden met de Microsoft Transporter Suite. Dit is een zeer eenvoudige tool die precies doet wat hij belooft: data migreren van een POP of IMAP mailbox naar Exchange 2007. Dat wil zeggen, dat hoort hij te doen. In de praktijk liep mijn collega tegen een aantal foutmeldingen aan en daarin is hij niet de enige. Bijvoorbeeld:

"Failed to retrieve the properties of a message in folder INBOX for the following reason: Failed to retrieve the properties of a message in folder INBOX for the following reason:  FETCH parse error.

Microsoft.Exchange.Transporter.TransporterException: Failed to retrieve the properties of a message in folder INBOX for the following reason: Failed to retrieve the properties of a message in folder INBOX for the following reason:  FETCH parse error.. ---> Microsoft.Exchange.Transporter.TransporterException: Failed to retrieve the properties of a message in folder INBOX for the following reason:  FETCH parse error.
   at Microsoft.Exchange.Transporter.Provider.PopImap.Imap4Client.ParseMessageProperties(RequestState`3 requestState)
   at Microsoft.Exchange.Transporter.Provider.PopImap.Imap4Client.RequestMessageProperties(Object threadParam)
   --- End of inner exception stack trace ---"

Of:

mmc.exe Warning: 0 : Aborting client operation for command ReadLine with response Failed to read response: ReadLine returned a null response..
mmc.exe Information: 0 : Microsoft.Exchange.Transporter.TransporterTransientException: Aborting client operation for command ReadLine with response Failed to read response: ReadLine returned a null response..
at Microsoft.Exchange.Transporter.Provider.PopImap.Imap4Client.readResponseLine()
at Microsoft.Exchange.Transporter.Provider.PopImap.Imap4Client.ParseMessageProperties(RequestState`3 requestState)
at Microsoft.Exchange.Transporter.Provider.PopImap.Imap4Client.RequestMessageProperties(Object threadParam)

Nu zijn er twee registry keys die de werking van de Transporter beïnvloeden, beiden kunnen helpen om foutmeldingen op te lossen. Om te beginnen is er ImapFetchBatchSize. Deze bepaalt hoeveel items er per keer gemigreerd worden en staat standaard op 2500. Deze waarde verkleinen in stapjes van 500, of gelijk op 500 zetten en vervolgens vergroten, kan problemen met vol lopende buffers verhelpen. Je kunt de key hier vinden, of aanmaken als hij nog niet bestaat:

HKCU\Software\Microsoft\Transporter\Preferences\ImapFetchBatchSize

De tweede key is PipelineFlushThresholdMB, deze bepaalt na welke hoeveelheid data het geheugen weer vrij gemaakt wordt. Standaard staat hij op 600MB maar kan voor migratie-servers met weinig geheugen verkleind worden. Je kunt de key hier vinden, of aanmaken als hij nog niet bestaat:

HKCU\Software\Microsoft\Transporter\Preferences\PipelineFlushThresholdMB

Sander bedankt!

No comments: