Welcome to TechNet Blogs Sign in | Join | Help
Exchange 2007'de transport troubleshoot'ta vazgeçilmez bir özellik...

Exchange 2003 archivesink adını verdiğimiz bir metod ile transporta girmekte olan mesajları dump (maili source code'u ile diske yazma işlemi) edebiliyorduk. Troubleshoot edilecek mesajın exchange 'e nasıl ulaştığını ve hangi değişimlere uğradığını görmek adına çok önemli bir özellik olan ArchiveSink artık exchange 2007'de yok. Bunun yerine yeni bir özellik olan "pipeline tracing" özelliği geldi. Bu özellik sayesinde mesaj transport içerisinde her seviyede dump ettirilebiliyor. Doğal olarak Edge ve HUB transport server'larda bu özelliği çalıştırabiliyoruz. Eğer bir server'da diğer rollerde varsa özellik yine çalışabilir.

Dump ettirmek kısacası ne demek... Mesajın yapısal durumunu analiz etmek için mesajı bir EML oalrak görmeliyiz. RFC standartlar çerçevesinde bu mesaj oluşturulmuşmu oluşturulmamışmı bu durumu ancak EML içerisinden anlarız. EML yapısını ilerde başka bir blog ile anlatmaya çalışacağım.

Pipeline Tracing GUI'den enable edilemiyor enable etmek için powershell kullanmak esasen zorunlu. Bunu aşağıdaki komut ile yapabiliyoruz...

Set-TransportServer KHUB -PipelineTracingEnabled $True

Yukarıdaki satırda $True yerine genel powershell kuralları çerçevesinde "1" $false için "0" da kullanılabilir...

Yukarıdaki işlem yapıldığında HUB server olan KHUB 'da pipeline tracing tüm mail akışı için enable edilmiş olacaktır.. Tabi giden gelen tüm maillerin dump ettirilmesi performansı çok fazlaca düşüreceği ve disk'i muhtemelen kısa sürede dolduracağı için filtrelemeye ve belirli bir sender'ı izlemeye ihtiyacımız var. Bunuda yapabilmek için aşağıdaki gibi bir ek parametre kullanmalıyız.

-PipelineTracingSenderAddress "omer.mert@contoso.com"

Uygun durumdaki bir diski veya disk path'ini kullanmak için aşağdıaki parametrede eklenebilir...

-PipelineTracingPath "C:\PipeLogs"

Sonuçta sağlıklı bir pipeline tracing için enazından aşağıdaki komut bütün halinde elimizde bulunmalı...

Set-TransportServer KHUB -PipelineTracingEnabled $True -PipelineTracingSenderAddress "omer.mert@contoso.com" -PipelineTracingPath "C:\PipeLogs"

Sağlıklı bir trace için öncelikle Sender address ve trace path girilmeli  ve sonrada enable edilerek veri toplanmalıdır.

Her koşulda gerekli data toplandıktan sonra pipeline tracing muttlaka kapatılmalı...

Set-TransportServer KHUB -PipelineTracingEnabled $False

Pipeline tacing ile çözülmüş bir örnek case...

Müşterimiz exchange 2007'ye gönderilmekte olan bazı maillerde SUBJECT alanının boş olarak (kaybedilmiş olarak) son kullanıcıya ulaştığını iletti. Pipeline tracing ile veri topladık ve elimize geçen EML file'dan aşağıdaki mesaj source'una ulaştık. 

X-CreatedBy: MessageSnapshot-Begin injected headers
X-MessageSnapshot-UTC-Time: 2005-06-12T13:07:04.389Z
X-MessageSnapshot-Protocol-Id: 08CA9AA12568B156;2005-06-12T13:07:00.529Z;5
X-MessageSnapshot-Source: Original
X-Sender: info@chxxx.com.tr
X-Receiver: a.do@bpoxxx.com.tr
X-EndOfInjectedXHeaders: MessageSnapshot-End injected headers
Received: from csm.chxxx.com.tr (172.1.43.13) by
 bpyyyx.inhha.bpoxxx.com.tr (10.1.43.15) with Microsoft SMTP Server id
 8.1.278.0; Thu, 12 Jun 2008 16:07:04 +0300
Received: from www.chxxx.com.tr ([10.1.27.7]) by csm.chxxx.com.tr with
 Microsoft SMTPSVC(6.0.3790.1830);  Thu, 12 Jun 2008 16:02:13 +0300
Content-Type: text/html; charset="'ISO-8859-9'"
From: <info@chxxx.com.tr>
To: a.do@bpoxxx.com.tr
Subject: Doğrudan doğruya açılış çoşkusu
Return-Path: info@cbank.com.tr
Message-ID: <ChxxxshufvDV2eq0sbw000000be@csm.chxxx.com.tr>
X-OriginalArrivalTime: 12 Jun 2008 13:02:13.0718 (UTC) FILETIME=[88790760:01C8CC8C]
Date: Thu, 12 Jun 2008 16:02:13 +0300
MIME-Version: 1.0
X-MS-Exchange-Organization-OriginalArrivalTime: 12 Jun 2008 13:07:04.3890
 (UTC)
X-MS-Exchange-Organization-AuthSource: bpoxxxx.intra.bpoxxx.com.tr
X-MS-Exchange-Organization-AuthAs: Anonymous

<HTML><head><META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; charset=
=3Dwindows-1254"><META HTTP-EQUIV=3D"Content-Type....................................

Evet yukarıdaki mesaj Original.EML olarak dump edildiği yerden alınıp incelendiğinde şunu görüyoruz...

"Subject:" header'ı Türkçe karakterler içeriyor... Oysa RFC2822 bize aşağıdakileri söylüyor...

2.2. Header Fields

   Header fields are lines composed of a field name, followed by a colon
   (":"), followed by a field body, and terminated by CRLF. 
A field
   name MUST be composed of printable US-ASCII characters (i.e.,
   characters that have values between 33 and 126, inclusive), except
   colon. 
A field body may be composed of any US-ASCII characters,
   except for CR and LF.  However, a field body may contain CRLF when
   used in header "folding" and  "unfolding" as described in section
   2.2.3.  All field bodies MUST conform to the syntax described in
   sections 3 and 4 of this standard.

 

Bu durumda mailin yapısal sorunu var.. İlgili header doğru biçimde Türkçe karakterler encode edilerek (Base64 yada Quoted Printable) gönderilirse mesajın subject'i doğru biçimde ve doğru karakterler ile belirecektir.

Yukarıdaki örnekteki EML manual encode edilerek submit edildiğinde mesajın subject ile deliver edildiğini görüyoruz.

İlerde birkaç örnek daha eklemeye çalışacağım...

KEKICI

 

Posted: Wednesday, November 05, 2008 1:25 PM by kubilay

Comments

No Comments

Anonymous comments are disabled
Page view tracker