Kürzlich hatte ein Kunde ein merkwürdiges Problem: Beim Eingeben von Text in ein ganz normales Textfeld stieg die CPU-Auslastung plötzlich extrem an, der Text hing beim Tippen je nach Rechnerleistung mehr oder weniger deutlich hinterher, ein Arbeiten in den Dokumenten einer bestimmten Maske war kaum noch möglich.
Zufälligerweise war mir das gleiche Problem in einer ähnlich konzipierten Anwendung einige Tage zuvor schon aufgefallen, ohne jedoch der Sache schon vollständig auf den Grund gegangen zu sein. Doch weil ich an meiner Anwendung im Wesentlichen nicht viel geändert hatte, kam schnell heraus, was beide Masken gemeinsam hatte: Sie enthielten verschachtelte Teilmasken.
Nehmen wir an, Maske M enthält Teilmaske T1 und diese enthält T2. Folgendes sorgte dann dafür, dass die Texteingabe wieder gewohnt flüssig verlief:
- T2 aus T1 entfernt. T1 und M gespeichert --> Die Texteingabe war immer noch langsam.
- T1 aus M entfernt und M gespeichert. --> Die Texteingabe war wieder schnell, aber die Teilmasken fehlten.
- T1 in M wieder eingefügt, T2 in T1 wieder eingefügt, T1 gespeichert, M gespeichert. --> Die Texteingabe war immer noch schnell, obwohl eigentlich alles wie im Anfang war.
So richtig reproduzierbar scheint der Bug auch nicht zu sein. Ich hatte zwar in meiner Anwendung einmal einen "Rückfall", als ich T2 bearbeitet hatte, aber das funktionierte nicht immer. Dabei scheine ich sogar "Glück" gehabt zu haben, dass mir mein Designer nicht abgestürzt ist, wie aus dieser IBM-Meldung hervorgeht. Die IBM-Ansage "Do not use nested subforms" ist jedenfalls klar und deutlich.
Deshalb muss man letztendlich festhalten, dass das oben beschriebene Verhalten von Notes zwar das Diagnostizieren des Problems vereinfacht, man sich aber nicht auf die von mir beschriebene Lösung verlassen sollte.