Shadow Redundancy ist eine weitere Möglichkeit Hochverfügbarkeit für die Exchange 2010 Hub-Transport Server zu gewährleisten. Dabei ist die Funktionsweise recht einfach. Möchte ein Benutzer eine Mail verschicken, landet die Mail in einer Queue auf einen Hub Transport Server. Der Hub Transport Server baut dann eine SMTP Verbindung mit einem Edge Transport auf und schickt die Mail an den Edge Transport Server. Wenn der Hub Transport Server die Mail abgeschickt hat, löscht er nicht die Mail aus seiner Queue sondern verschiebt die Mail in eine Shadow Queue. Der Edge Transport Server wiederrum baut eine SMTP Verbindung mit dem nächsten Mail Server auf, das könnte zum Beispiel schon der Mail Server der Empfänger Mailbox sein und markiert die Mail mit dem Status „versendet“. Der Hub Transport Server fragt nach einer gewissen Zeit den Status der Mail in der Shadow Queue beim Edge Transport Server ab. Ist der Status der Mail versendet, löscht der Hub Transport Server die Mail aus seiner Shadow Queue.
Sollte die Mail vom Edge Transport Server die Mail nicht als versendet gekennzeichnet haben, weil er zum Beispiel ausgefallen ist, versendet der Hub-Transport Server die Mail entweder an einen anderen Edge Transport Server erneut, oder verschickt die Mail direkt.
Gesteuert wird dieser komplette Prozess vom „Shadow Redundancy Manager“. Die Ermittlung der Verfügbarkeit von Transport Server wird per Heartbeat durchgeführt. Um den Status einer Mail (discardStatus) abzurufen benutzt der Transport Server das SMTP Kommando XQUERYDISCARD. Woraufhin der Remote Server den discardStatus der Mails zurückgibt.
Die Konfiguration von ShadowRedundancy kann ausschließlich per Shell erledigt werden. Um Shadow Redundancy ein- oder auszuschalten, gibt man folgenden Befehl auf der Exchange Management Shell ein:
Set-TransportConfig -ShadowRedundancyEnabled $true
bzw.
Set-TransportConfig -ShadowRedundancyEnabled $false
Um Shadow Redundancy Heartbeat zu konfigurieren gibt es die folgenden Parameter:
Set-TransportConfig –
ShadowHeartbeatRetryCount 3 –ShadowHeartbeatTimeoutInterval 300 –ShadowMessageAutoDiscardInterval 02:00:00
ShadowHeartbeatCount legt fest wie häufig ein Server ein Time-Out abwartet, bevor der er die Nachricht von der Shadow Queue wieder erneut über einen anderen Weg versendet. Der Standardwert liegt bei 3 Versuchen.
ShdadowHeartbeatTimeOutInterval legt fest in welchen Abständen die Hearbeats erfolgen, Standard ist ein Wert von 300 Sekunden.
Der Parameter ShadowMessageAutoDiscardinterval legt fest wie lange ein Server wartet bevor die Mail aus der Queue gelöscht wird, auch wenn kein Server den Status der Mail erfragt hat. Der Standard ist hier 2 Tage.