JRas-Programmierschnittstellen für die Protokollierung (veraltet)

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.

Allgemeine Hinweise

Sie können WebSphere Application Server so konfigurieren, dass er die Java-2-Sicherheitskomponente verwendet, um den Zugriff auf geschützte Ressourcen, wie z. B. Dateisystem und Sockets, einzuschränken. Da benutzerdefinierte Erweiterungen normalerweise auf diese geschützten Ressourcen zugreifen, müssen sie die entsprechenden Aufrufe zur Sicherheitsprüfung enthalten. Dabei werden die AccessController-Aufrufe des Typs doPrivileged verwendet. Außerdem müssen benutzerdefinierte Erweiterungen die entsprechende Richtliniendatei enthalten. Im Allgemeinen empfiehlt es sich, benutzerdefinierte Erweiterungen in ein separates Paket zu packen. Es obliegt Ihrer Verantwortung, den Zugriff auf benutzerdefinierte Erweiterungen einzuschränken.

Einen Handler schreiben

Benutzerdefinierte Handler müssen die Schnittstelle "RASIHandler" implementieren. Die Schnittstelle "RASIHandler" erweitert die Schnittstelle "RASIMaskChangeGenerator", die die Schnittstelle "RASIObject" erweitert. Es folgt eine kurze Erläuterung der von diesen Schnittstellen eingeführten Methoden mit deren Implementierungszeigern. Ausführliche Informationen zu bestimmten Schnittstellen oder Methoden enthält die API-Dokumentation zu Ihrem Produkt.

Schnittstelle "RASIObject"

Die Schnittstelle "RASIObject" ist die Basisschnittstelle für eigenständige Stateful-Klassen bzw. konfigurierbare Klassen des JRas-Protokollierungstoolkit, wie z. B. Protokollfunktionen (Logger), Handler und Formatter.
  • Das eigenständige JRas-Protokollierungstoolkit unterstützt rudimentäre, auf Eigenschaftendatei basierende Konfigurationen. Zur Implementierung dieser Konfigurationsunterstützung wird der Konfigurationsstatus als Gruppe von Schlüssel-/Wert-Paaren in einer Eigenschaftendatei gespeichert. Die öffentlichen Hashtable-Methoden "getConfig" und "public void setConfig(Hashtable ht)" werden verwendet, um den Konfigurationsstatus abzurufen und zu definieren. Die JRas-Erweiterungen unterstützen keine eigenschaftsbasierten Konfiguration. Implementieren Sie diese Methoden als Nicht-Operationen. Mit diesen Methoden können Sie eigene eigenschaftsbasierte Konfigurationen implementieren.
  • Protokollfunktionen, Handler und Formatter können benannte Objekte sein. Die JRas-Erweiterungen fordern den Benutzer z. B. auf, einen Namen für die vom Manager abgerufenen Protokollfunktionen anzugeben. Sie können die Handler benennen. Mit den Methoden public String getName und public void setName(String name) wird das Namensfeld abgerufen oder definiert. Die JRas-Erweiterungen rufen diese Methoden gegenwärtig nicht für Benutzer-Handler auf. Sie können diese Methoden wie gewünscht implementieren, z. B. auch als Nicht-Operationen.
  • Protokollfunktionen, Handler und Formatter können ebenfalls ein Beschreibungsfeld enthalten. Mit den Methoden public String getDescription und public void setDescription(String desc) wird das Beschreibungsfeld abgerufen oder definiert. Die JRas-Erweiterungen rufen diese Methoden gegenwärtig nicht für das Beschreibungsfeld auf. Sie können diese Methoden wie gewünscht implementieren, z. B. auch als Nicht-Operationen.
  • Die Methode "public String getGroup" wird von der Schnittstelle "RASManager" zur Verwendung bereitgestellt. Da die JRas-Erweiterungen ihre eigene Manager-Klasse bereitstellen, wird diese Methode nie aufgerufen. Es wird empfohlen, diese Methode als Nicht-Operation zu implementieren.

Schnittstelle "RASIMaskChangeGenerator"

Die Schnittstelle "RASIMaskChangeGenerator" definiert die Implementierungsmethoden für das Filtern der auf einem Maskenstatus basierenden Ereignisse. Das bedeutet, dass es gegenwärtig von Protokollfunktionen und Handlern implementiert wird. Laut Definition enthält ein Objekt, das diese Schnittstelle implementiert, eine Nachrichtenmaske und eine Tracemaske, obwohl beide Masken nicht verwendet zu werden brauchen. Beispielsweise enthalten Nachrichtenprotokollfunktionen eine Tracemaske, aber die Tracemaske wird nie verwendet, da die Nachrichtenprotokollfunktion keine Traceereignisse generiert. Handler können jedoch beide Maskenwerte aktiv verwenden. Beispielsweise kann ein einzelner Handler Nachrichten- und Traceereignisse bearbeiten.

  • Die Methoden public long getMessageMask und public void setMessageMask(long mask) werden verwendet, um den Wert der Messaging-Maske abzurufen oder zu definieren. Die Methoden public long getTraceMask und public void setTraceMask(long mask) werden verwendet, um den Wert der Tracemaske abzurufen oder zu definieren.

Außerdem führt diese Schnittstelle das Konzept des Rückrufs interessierter Teilnehmer im Falle von Maskenänderungen ein. Das Rückrufobjekt muss die Schnittstelle "RASIMaskChangeListener" implementieren.

  • Mit den Methoden "public void addMaskChangeListener(RASIMaskChangeListener listener)" und "public void removeMaskChangeListener(RASIMaskChangeListener listener)" werden Listener zum Handler hinzugefügt oder aus diesem entfernt. Die Methode "public Enumeration getMaskChangeListeners()" gibt eine Aufzählung über die Liste der gegenwärtig registrierten Listener zurück. Die Methode "public void fireMaskChangedEvent(RASMaskChangeEvent mc)" wird verwendet, um im Falle einer Maskenänderung einen Callback für alle registrierten Listener durchzuführen.

Aus Gründen der Effizienz implementieren die Nachrichten- und Traceprotokollfunktionen der JRas-Erweiterungen die Schnittstelle "RASIMaskChangeListener". Die Protokollfunktionsimplementierungen verwalten zusätzlich zur eigenen Maske der Protokollfunktion eine zusammengesetzte Maske. Die zusammengesetzte Maske der Protokollfunktion entsteht durch logische Verknüpfung der entsprechenden Masken aller in dieser Protokollfunktion registrierten Handler mit dem Operand OR. Anschließend wird das Ergebnis über den Operand AND mit der eigenen Maske der Protokollfunktion verknüpft. Die zusammengesetzte Maske der Nachrichtenprotokollfunktion entsteht durch logische Verknüpfung der entsprechenden Nachrichtenmasken aller in dieser Protokollfunktion registrierten Handler mit dem Operand OR. Anschließend wird das Ergebnis über den Operand AND mit der eigenen Maske der Nachrichtenprotokollfunktion verknüpft.

Das bedeutet, dass alle Handler diese Methoden richtig implementieren müssen. Wenn außerdem ein Benutzer-Handler instanziert wird, muss die hinzuzufügende Protokollfunktion über die Methode addMaskChangeListener am Handler registriert werden. Wenn die Nachrichtenmaske oder Tracemaske des Handler geändert wird, muss für die Protokollfunktion ein Callback durchgeführt werden, damit sie den Handler über die Maskenänderung informieren kann. Das ermöglicht der Protokollfunktion, die zusammengesetzte Maske dynamisch zu verwalten.

Die Klasse RASMaskChangedEvent wird vom eigenständigen JRas-Protokollierungstoolkit definiert. Die direkte Verwendung dieser Klasse durch den Benutzercode ist in diesem Kontext zulässig.

Außerdem führt RASIMaskChangeGenerator das Konzept des Namens-Caching für alle Nachrichten- und Traceereignisklassen, die vom implementierenden Objekt verarbeitet werden, ein. Mit diesen Methoden soll ein Verwaltungsprogramm, z. B. eine grafische Benutzerschnittstelle, die Namensliste abrufen, die Klassen untersuchen, um die ggf. zu verarbeitenden Ereignistypen zu bestimmen, und schließlich die Ergebnisse anzeigen. Die JRas-Erweiterungen rufen diese Methoden nie auf, daher können sie als Nicht-Operationen implementiert werden.

  • Die Methoden public void addMessageEventClass(String name) und public void removeMessageEventClass(String name) können aufgerufen werden, um den Namen einer Nachrichtenereignisklasse zur Liste hinzuzufügen oder aus dieser zu entfernen. Die Methode public Enumeration getMessageEventClasses gibt eine Aufzählung über die Liste der Namen von Nachrichtenereignisklassen zurück. Analog dazu können die Methoden public void addTraceEventClass(String name) und public void removeTraceEventClass(String name) aufgerufen werden, um den Namen einer Traceereignisklasse zur Liste hinzuzufügen oder aus dieser zu entfernen. Die Methode public Enumeration getTraceEventClasses gibt eine Aufzählung über die Liste der Namen von Traceereignisklassen zurück.

Schnittstelle "RASIHandler"

Die Schnittstelle "RASIHandler" führt die Methoden ein, die für das Verhalten eines Handler spezifisch sind.

Die vom eigenständigen JRas-Protokollierungstoolkit bereitgestellte Schnittstelle "RASIHandler" unterstützt Handler, die im synchronen oder asynchronen Modus ausgeführt werden. Im asynchronen Modus werden Ereignisse normalerweise vom aufrufenden Thread in die Warteschlange gestellt und anschließend von einem Worker-Thread geschrieben. Da das Erzeugen von Threads in der Umgebung WebSphere Application Server nicht zulässig ist, wird erwartet, dass Handler Ereignisse nicht in eine Warteschlange oder einen Stapel stellen, obwohl dies nicht ausdrücklich verboten ist.

  • Die Methoden "public int getMaximumQueueSize()" und "public void setMaximumQueueSize(int size)" lösen Ausnahmen des Typs IllegalStateException aus und werden zur Verwaltung der maximalen Warteschlangengröße bereitgestellt. Mit der Methode "public int getQueueSize()" wird die tatsächliche Warteschlangengröße abgefragt.
  • Die Methoden "public int getRetryInterval()" und "public void setRetryInterval(int interval)" unterstützen die Fehlerwiederholung, bei der ebenfalls bestimmte Warteschlangen verwendet werden.
  • Mit den Methoden "public void addFormatter(RASIFormatter formatter)", "public void removeFormatter(RASIFormatter formatter)" und "public Enumeration getFormatters" wird die Liste der Formatter, mit denen der Handler konfiguriert werden kann, verwaltet. Für verschiedene Ereignisklassen können, falls gewünscht, verschiedene Formatter bereitgestellt werden.
  • Die Methoden "public void openDevice", "public void closeDevice" und "public void stop" werden bereitgestellt, um die zugrunde liegende Einheit, die der Handler abstrahiert, zu verwalten.
  • Mit den Methoden "public void logEvent(RASIEvent event)" und "public void writeEvent(RASIEvent event)" werden Ereignisse tatsächlich zur Verarbeitung an den Handler übergeben.

Einen Formatter schreiben

Benutzerdefinierte Formatter müssen die Schnittstelle "RASIFormatter" implementieren. Die Schnittstelle "RASIFormatter" erweitert die Schnittstelle "RASIObject". Die Implementierung der Schnittstelle "RASIObject" ist für Handler und Formatter identisch. Es folgt eine kurze Erläuterung der von der Schnittstelle "RASIFormatter" eingeführten Methoden. Ausführliche Informationen zu den von dieser Schnittstelle eingeführten Methoden enthält die API-Dokumentation zu Ihrem Produkt.

Schnittstelle "RASIFormatter"

  • Die Methoden "public void setDefault(boolean flag)" und "public boolean isDefault" werden von den konkreten RASHandler-Klassen, die vom eigenständigen JRas-Protokollierungstoolkit bereitgestellt werden, verwendet, um festzustellen, ob ein bestimmter Formatter der Standard-Formatter ist. Da diese RASHandler-Klassen nie in einer WebSphere Application Server-Umgebung verwendet werden dürfen, kann die semantische Bedeutung dieser Methoden vom Benutzer festgelegt werden.
  • Die Methoden "public void addEventClass(String name)", "public void removeEventClass(String name)" und "public Enumeration getEventClasses" werden bereitgestellt, um zu bestimmen, welche Ereignisklassen mit einem Formatter formatiert werden können. Sie können die entsprechenden Implementierungen nach Bedarf bereitstellen.
  • Die Methode "public String format(RASIEvent event)" wird von Handler-Objekten aufgerufen und gibt das Ereignis in Form einer formatierten Zeichenfolge zurück.

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_wrtextensions
Dateiname:rtrb_wrtextensions.html