5.19. Problembehandlung

Um bei der Problemlösung zu unterstützen, wenn irgendetwas schiefgeht oder wenn Sie als Benutzer von IDERI note den Verdacht haben, dass ein Teilaspekt von IDERI note nicht korrekt funktioniert, schreiben alle kritischen Codepfade in den IDERI note Clientkomponenten und im IDERI note Dienst Logdateien, oder können so instrumentiert werden, dass sie Logdateien schreiben. Beachten Sie, dass Logdateien immer per Thread geschrieben werden und nicht per Prozess. Das hat zur Konsequenz, dass ein Client- oder Dienstprozess in der Regel mehrere Logdateien gleichzeitig schreibt, wobei jeder Thread sein eigenes Logfile hat. Während die Einstellungen für das Schreiben von Logdateien für die IDERI note Clientkomponenten nicht einstellbar sind, können sie für den IDERI note Dienst granular abgestimmt werden. Diejenigen Funktionen im IDERI note Dienst, die als Teil eines entfernten Funktionsaufrufs (Remote Procedure Call, RPC) ausgeführt werden, werden theoretisch immer in einem beliebigen neuen Thread ausgeführt, auch wenn die RPC-Laufzeitumgebung in der Regel einen Thread-Pooling-Mechanismus verwendet. Da aber der Thread, in dem ein RPC ausgeführt wird, nicht explizit vom IDERI note Dienst angelegt wird, sondern von der RPC-Laufzeitumgebung, wird für jeden derartigen Aufruf auch eine separate Logdatei geschrieben, wenn die Loggingfunktionalität für die betreffende Funktion aktiviert ist. Daher finden sich in der Bedienschnittstelle für das Einstellen der Loggingfunktionalität nicht nur Bezeichnungen für die einzelnen Threads sondern auch Funktionsnamen für RPCs.

<b>Beachten Sie:</b> Sie sollten die Standardeinstellungen für die Loggingfunktionalität nur zum Zweck der Problembehandlung ändern und wenn Sie dazu vom IDERI Supportpersonal im Rahmen der Problemlösung aufgefordert wurden. Das Ändern der Einstellungen für die Loggingfunktionalität kann die Performanz des IDERI note Dienstes stark beeinträchtigen, daher ist die Loggingfunktionalität in den Standardeinstellungen nur für diejenigen Threads aktiviert, die die Performanz des Dienstes in der Gesamtheit nicht beeinträchtigen, wie beispielsweise für den primären Thread und den Thread der Hauptroutine des Dienstes.

Die Einstellungen für die Loggingfunktionalität können durch Aufruf des IDERI note Systemsteuerungsapplet auf demjenigen Rechner, auf dem der IDERI note Dienst läuft, angepasst werden. Dieses Applet wird gestartet mit einem Doppelklick auf das Applet mit der Bezeichnung “IDERI note 2.7”.

Auf einer Windows® Server 2008 Core Installation kann es aufgerufen werden durch Starten der Applikation corecfg.exe im Installationsverzeichnis der IDERI note Serverkomponenten. Nach Anwahl des zweiten Reiters mit der Bezeichnung “Logging”, sieht das Applet aus wie in Abbildung 5.62.

Die Seite für die Einstellung der Loggingfunktionalität im IDERI note Systemsteuerungsapplet mit Standardeinstellungen

Figure 5.62: Die Seite für die Einstellung der Loggingfunktionalität im IDERI note Systemsteuerungsapplet mit Standardeinstellungen

Diese Seite des IDERI note Systemsteuerungsapplets hat zwei Listenfelder mit Funktionsnamen/Threadnamen. Als Randbemerkung sei hier erwähnt, dass die Funktionsnamen tatsächlich die Namen der Funktionen im Quellcode von IDERI note sind. Die Namen der Threads/Funktionen werden ausserdem verwendet, um daraus die Namen der aus ihnen enstehenden Logdateien abzuleiten. Das obere Listenfeld enthält die Namen von denjenigen Threads/Funktionen, für die keine Erzeugung von Logdateien aktiviert ist. Das untere Listenfeld enthält dagegen die Namen von denjenigen Threads/Funktionen, für die die Erzeugung von Logdateien aktiviert ist. Die Zahl in der zweiten Spalte des unteren Listenfelds bestimmt die Anzahl der maximal gleichzeitig auf der Festplatte vorhandenen Logdateien des entsprechenden Typs. Wird für einen bestimmten Thread/Funktion eine neue Logdatei angelegt, werden alle bisher vorhandenen Logdateien desselben Typs ermittelt. Überschreitet deren Anzahl die maximale Anzahl von Logdateien für den entsprechenden Typ, werden beginnend mit den ältesten Logdateien so lange alte Logdateien gelöscht, bis die Anzahl existierender Logdateien dieses Typs wieder unter die maximale Anzahl an Logdateien sinkt. Mit diesem einfachen Mechanismus wird verhindert, dass die Festplatte mit Logdateien überfüllt wird.

Um für einen bestimmten Thread/Funktion die Loggingfunktionalität zu aktivieren, muss der Name zunächst im oberen Listenfeld angewählt werden. Daraufhin wird die Schaltfläche “Nach unten” betätigt. Im Bespiel führen wir das nun für die zweite Funktion im oberen Listenfeld mit dem Namen RpcInoteGetMsgIndexMaxMin durch. Es erscheint dann der Dialog wie in Abbildung 5.63 , der es gestattet, die Anzahl an maximal gleichzeitig existierenden Logdateien dieses Typs festzulegen.

Angabe der maximalen Anzahl an Logdateien pro Funktion/Thread

Figure 5.63: Angabe der maximalen Anzahl an Logdateien pro Funktion/Thread

In unserem Beispiel ändern wir den Standardwert ab auf 20 und betätigen die Schaltfläche OK. Das verschiebt den Funktionsnamen in das untere Listenfeld wie in Abbildung 5.64.

Einfügen einer neuen Funktion zu den für die Loggingfunktionalität aktivierten Funktionen

Figure 5.64: Einfügen einer neuen Funktion zu den für die Loggingfunktionalität aktivierten Funktionen

Wenn Sie nun im IDERI note Systemsteuerungsapplet die Schaltfläche OK oder “Übernehmen” betätigen, werden die Änderungen gespeichert und nach einem Neustart des IDERI note Dienstes werden ab sofort bei Aufruf der Funktion RpcInoteGetMsgIndexMaxMin Logdateien angelegt. Logdateien dieses Typs können sehr leicht anhand des Namens der Logdatei identifiziert werden, da der Name der Funktion, RpcInoteGetMsgIndexMaxMin, Teil des Namens der Logdatei ist, ergänzt um eine Sequenznummer. Beachten Sie bitte auch die Abschnitte 9.3 und 9.1, in denen die Verzeichnisse angegeben sind, in denen Sie abhängig von der verwendeten Betriebssystemversion die entsprechenden Logdateien finden.