Massenhaftes Generieren von Datenbank-Logfiles

Frank Carius schickte mir vor kurzem eine Mail und berichtete über einen "netten" Effekt, auf den er bei einem Kunden stieß:

Im Einsatz ist Exchange 2003 (noch SP1) und Outlook 2003 im Cached Exchange Mode. Plötzlich generiert der Exchange massenhaft Datenbank-Logfiles. Letztlich haben wir mit EXINFO dann rausgefunden, welcher Client viel Last macht und da mal nachgeschaut. Was ist anscheinend passiert?

Es gibt Postfachlimits (alle drei aufsteigend) und das Postfach ist immer voller und voller geworden. Der Anwender hat aber die Warnungen geflissentlich ignoriert. Irgendwann ist das Postfach wohl am Limit gewesen. Dummerweise war noch eine Mail in der OST-Datei, die Outlook gerne auf den Server repliziert hätte. Das ging aber nicht.

Nur kam hier keine Fehlermeldung hoch, sondern die Hintergrundreplikation hat einfach einen Eintrag in den Ordner "Synchronisationsprobleme/Lokale Fehler" sowie in "Synchronisationsprobleme" gestellt. Anscheind wurde daraus dann eine Endlosschleife, da die Meldung auch gleich wieder hoch synchronisiert werden wollte. Perfekt war die Endlosschleife. Sag mal: Ist das nicht ein Bug ?

Das ist in der Tat ein Bug, der meines Wissens mit Service Pack 2 gefixed wurde. Wichtig daran ist, daß man sowohl SP2 für den Exchange Server 2003, als auch SP2 für Outlook 2003 einspielen muß.

Grund war das Prüfverhalten des Exchange Servers. Wenn eine Email Outlook 2003 (pre SP2) im Cached Mode verläßt, wurden die Größenbeschränkungen nicht vor dem Versand geprüft, sondern erst nach der Ankunft der Nachricht am Server. Bei der Synchronisation von geänderten Mails aus der OST-Datei kam es zu dem beschriebenen deadlock.

Noch gravierender war die Auswirkung bei dem Versand ausgehender Mails. Microsoft Exchange sendete daraufhin eine non-delivery notification (NDN) mit der kompletten Nachricht als Anhang zurück. Diese enthält einen einladenden Button "Erneut senden", der nur darauf wartet, daß der Anwender darauf klickt und der Spaß geht von vorn los.

Wenn also jemand eine 10 MB große Email von seinem Cached Mode-Client sendete, gingen erstmal diese 10 MB über das Netzwerk. Wenn diese Email ein Größenlimit überschritt, sendete Microsoft Exchange die 10 MB in einem NDN mit noch etwas geringfügigem Overhead zurück über das Netzwerk. Damit sind wir schon bei ca. 20 MB.

Wenn nun der Anwender aufgrund seines Unverständnisses des Grundes der Fehlermeldung intuitiv auf "Erneut Senden" klickte, weil er ja wollte, daß die Nachricht zugestellt wird, kamen wir schon auf >40 MB Netzwerkverkehr. Das alles, obwohl die Größenlimits derartigen Datenverkehr abwenden sollen.

Man stelle sich einmal vor, der Anwender sitzt hinter einer schmalbandigen Anbindung. Oder schlimmer noch: Er teilt sie sich mit anderen Anwendern. Den entsprechenden Anstieg seines belegten Postfachspeicherplatzes habe ich dabei noch gar nicht mit betrachtet...