JRas-Erweiterungsklassen
WebSphere Application Server stellt eine Basisgruppe von Implementierungsklassen bereit, die kollektiv als JRas-Erweiterungen bezeichnet werden. Viele dieser Klassen bieten passende Protokollfunktions-, Handler- und Formatterimplementierungen, die in einer WebSphere Application Server-Umgebung verwendet werden können.
Das JRas-Framework, das in dieser Task und den untergeordneten Tasks beschrieben wird, wird nicht weiter unterstützt. Sie können jedoch ähnliche Ergebnisse mit der Java™-Protokollierung erzielen.
Wie zuvor erwähnt, ist diese Klassengruppe für den integrierten Betriebsmodus vorgesehen. Wenn Sie angeben, dass die JRas-Erweiterungen im Modus "Eigenständig" oder "Kombiniert" verwendet werden sollen, können Sie die von den Erweiterungen bereitgestellte Protokollfunktions- und Managerklasse erneut verwenden, Sie müssen jedoch Ihre eigenen Handler- und Formatter-Implementierungen bereitstellen.
Nachrichten- und Traceprotokollfunktion von WebSphere Application Server
Die Nachrichten- und Traceprotokollfunktionen (Logger), die vom eigenständigen JRas-Protokollierungstoolkit bereitgestellt werden, können nicht direkt in der WebSphere Application Server-Umgebung verwendet werden. Die JRas-Erweiterungen stellen die entsprechenden Protokollfunktionsimplementierungsklassen bereit. Instanzen dieser Nachrichten- und Traceprotokollfunktionsklassen werden direkt und ausschließlich von der Klasse des WebSphere Application Server-Managers abgerufen. Sie können Nachrichten- und Traceprotokollfunktionen nicht direkt instanzieren. Sie können Protokollfunktionen (Logger) nur direkt vom Manager abrufen, eine andere Vorgehensweise ist nicht zulässig und stellt eine direkte Verletzung des Programmiermodells dar.
Die Nachrichten- und Traceprotokollfunktionsinstanzen, die von der WebSphere Application Server-Managerklasse abgerufen werden, sind Unterklassen der Klassen RASMessageLogger und RASTraceLogger, die vom eigenständigen JRas-Protokollierungstoolkit bereitgestellt werden. Die Klassen RASMessageLogger und RASTraceLogger definieren die Gruppe der direkt verfügbaren Methoden. Öffentliche Methoden, die von den Protokollfunktionsunterklassen der JRas-Erweiterungen eingeführt werden, können nicht direkt vom Benutzercode aufgerufen werden, da auch dies eine Verletzung des Programmiermodells bedeutet.
Protokollfunktionen sind benannte Objekte und werden über den Namen lokalisiert. Wenn die Managerklasse aufgerufen wird, um eine Protokollfunktion abzurufen, muss der aufrufende Prozess (Caller) einen Namen für die Protokollfunktion angeben. Die Manager-Klasse verwaltet eine Name-Protokollfunktionsinstanzzuordnung. Während der Lebensdauer eines Prozesses wird nur eine Instanz einer benannten Protokollfunktion erstellt. Der erste Aufruf der Manager-Klasse mit einem bestimmten Namen führt dazu, dass die Protokollfunktion vom Manager erstellt und konfiguriert wird. Der Manager stellt eine Referenz auf die Instanz in den Cache und gibt sie dann an den aufrufenden Prozess zurück. Nachfolgende Aufrufe des Managers mit demselben Namen haben zur Folge, dass eine Referenz auf die zwischengespeicherte Protokollfunktion zurückgegeben wird. Für Nachrichten- und Traceprotokollfunktionen werden getrennte Namespaces verwaltet. Damit ist es möglich, unter einem Namen eine Nachrichtenprotokollfunktion und eine Traceprotokollfunktion vom Manager anzufordern. Es entstehen keine Mehrdeutigkeiten und keine Namespace-Kollisionen.
Im Allgemeinen haben Protokollfunktionen keine vordefinierte Unterteilung bzw. keinen vordefinierten Bereich. Eine einzelne Protokollfunktion kann zur Instrumentierung einer Anwendung verwendet werden. Der Benutzer kann aber auch festlegen, dass pro Klasse eine Protokollfunktion verwendet werden soll. Die geeignete Unterteilung kann auch zwischen diesen Extrempositionen liegen. Die Partitionierung einer Anwendung in Protokollierungsdomänen wird vom Autor des Programms bestimmt.
Die von der Managerklasse abgerufenen WebSphere Application Server-Protokollfunktionsklassen sind threadsicher. Obwohl die Protokollfunktionen, die als Teil des eigenständigen JRas-Protokollierungstoolkit bereitgestellt werden, die Schnittstelle Serializable implementieren, sind Protokollfunktionen tatsächlich nicht serialisierbar. Protokollfunktionen sind nicht serialisierbare Stateful-Objekte, die an eine JVM-Instanz gebunden sind (Java Virtual Machine). Wenn Sie versuchen, eine Protokollfunktion zu serialisieren, stellt dies eine direkte Verletzung des Programmiermodells dar.
Persönliche oder einzelne Protokollfunktionsunterklassen werden in einer Umgebung mit WebSphere Application Server nicht unterstützt.
Handler in WebSphere Application Server
WebSphere Application Server stellt die Handler-Klasse bereit, mit der Nachrichten- und Traceereignisse in die Laufzeitprotokolle von WebSphere Application Server geschrieben werden können. Sie können den WebSphere Application Server-Handler nicht dahingehend konfigurieren, dass er einen Schreibzugriff auf ein anderes Ziel durchführt. Die Erstellung eines WebSphere Application Server-Handler ist eine eingeschränkte Operation und für Benutzercode nicht verfügbar. Jede vom Manager abgerufene Protokollfunktion ist vorkonfiguriert und besitzt eine bereits installierte Instanz dieses Handler. Sie können den WebSphere Application Server-Handler aus einer Protokollfunktion entfernen, wenn Sie den Modus "Eigenständig" verwenden möchten. Wenn Sie den Handler von WebSphere Application Server einmal entfernt haben, können Sie ihn nicht mehr zu der Protokollfunktion, aus der Sie ihn entfernt haben, oder zu einer anderen Protokollfunktion hinzufügen. Außerdem haben Sie nicht die Möglichkeit, eine Methode für den WebSphere Application Server-Handler direkt aufzurufen. Wenn Sie versuchen, mit Benutzercode eine Instanz des WebSphere Application Server-Handler zu erstellen, Methoden für den WebSphere Application Server-Handler aufzurufen oder einen WebSphere Application Server-Handler zu einer Protokollfunktion hinzuzufügen, stellt das eine direkte Verletzung des Programmiermodells dar.
Formatierungsprogramme in WebSphere Application Server
Der WebSphere Application Server-Handler ist vorkonfiguriert und besitzt das passende Formatierungsprogramm (Formatter) für Daten, die in WebSphere Application Server-Protokolle geschrieben werden. Die Erstellung eines WebSphere Application Server-Formatter ist eine eingeschränkte Operation und für Benutzercode nicht verfügbar. Es gibt für den Benutzer keine Möglichkeit, eine Referenz auf einen im WebSphere Application Server-Handler installierten Formatter abzurufen oder den Formatter, den ein WebSphere Application Server-Handler laut Konfiguration verwenden soll, zu ändern.
Manager in WebSphere Application Server
WebSphere Application Server stellt eine Manager-Klasse im Paket com.ibm.websphere.ras bereit. Alle Nachrichten- und Traceprotokollfunktionen müssen von diesem Manager abgerufen werden. Eine Referenz auf den Manager wird durch Aufrufen der statischen Methode Manager.getManager() abgerufen. Nachrichtenprotokollfunktionen werden durch Aufrufen der Methode createRASMessageLogger() im Manager abgerufen. Nachrichtenprotokollfunktionen werden durch Aufrufen der Methode createRASTraceLogger() im Manager abgerufen.
Der Manager unterstützt auch den abstrakten Begriff Gruppe, der beim Arbeiten mit Traceprotokollfunktionen nützlich ist. Die Kategorie der Gruppe bietet die Möglichkeit, mehrere, nicht zueinander gehörende Traceprotokollfunktionen als Teil einer benannten Einheit, die als Gruppe bezeichnet wird, zu registrieren. WebSphere Application Server stellt die geeigneten Systemverwaltungsfunktionen bereit, mit denen die Traceeinstellung einer Gruppe ähnlich der Traceeinstellung einer einzelnen Traceprotokollfunktion bearbeitet werden kann.
Nehmen Sie z. B. an, dass Komponente A aus 10 Klassen besteht. Nehmen Sie an, jede Klasse ist so konfiguriert, dass sie eine eigenständige Traceprotokollfunktion verwendet. Nehmen Sie weiter an, dass alle 10 Traceprotokollfunktionen in der Komponente als Member derselben Gruppe, z. B. Component_A_Group registriert sind. Wenn Sie einen Trace für die Komponente wünschen, haben Sie auch die Möglichkeit, in einer einzigen Operation das Tracing für alle 10 Klassen zu aktivieren, indem Sie den Gruppennamen verwenden. Gruppennamen werden für Traceprotokollfunktionen im Namespace verwaltet.