Nachrichtenverarbeitungsknoten und Parser müssen normalerweise nicht direkt in das lokale Fehlerprotokoll schreiben, da empfohlen wird, dass eine benutzerdefinierte Erweiterung Fehler mit Hilfe von Ausnahmebedingungen meldet. Zur Fehlerermittlung und für Betriebszwecke können Sie jedoch wichtige Ereignisse, Fehler usw. auf dieselbe Weise wie WebSphere Message Broker aufzeichnen.
Bei C-Code können Sie dafür die Dienstprogrammfunktion CciLog verwenden. Zwei von dieser Funktion akzeptierte Argumente, messageSource und messageNumber, definieren die Ereignisquelle und die tatsächliche Integer-Darstellung einer Nachricht in dieser Quelle.
Bei Java-Code stellt die Klasse MbService statische Methoden zur Protokollierung von Informationen im Ereignisprotokoll bereit. Zur Protokollierung von Nachrichten im Ereignisprotokoll müssen Sie Ihre Nachrichten in ein Java-Standardressourcenpaket packen. Sie können eine der drei Protokollierungsmethoden verwenden, bei denen der Ressourcenpaketname und der Nachrichtenschlüssel übergeben wird. Die Nachricht wird vollständig aufgelöst und anschließend wie folgt als einzelne Einfügung in die entsprechende Broker-Nachricht eingefügt:
Bei Windows-Systemen werden die Nachrichten in das Windows-Ereignisprotokoll geschrieben, und Ihr Nachrichtenkatalog muss als Windows-DLL übermittelt werden.
Bei Linux- und UNIX-Systemen werden diese Nachrichten in das Tool SYSLOG geschrieben, und Ihr Nachrichtenkatalog muss als XPG4-Nachrichtenkatalog übermittelt werden.
Der obige Abschnitt gilt für Ausnahmebedingungen, die bei der normalen Verarbeitung auftreten. Sie müssen jedoch auch für den Fall Sorge tragen, dass Ausnahmebedingungen beim Einsatz und bei der Konfiguration eines Nachrichtenflusses auftreten. Nachrichten, die aus diesen Konfigurationsausnahmebedingungen resultieren, werden an die Workbench zurückgemeldet, damit Sie für den Workbench-Benutzer angezeigt werden können. Um diesen Vorgang zu vereinfachen, müssen Sie eine entsprechend benannte Java-Eigenschaftendatei erstellen und in jede Workbench kopieren.
Unter Windows wird der Nachrichtenkatalog als Windows-DLL übermittelt, die Sie wie im Folgenden beschrieben erstellen müssen. Diese enthält Definitionen Ihrer Ereignisnachrichten, damit die Ereignisanzeige ein lesbares Format anzeigen kann, basierend auf der von Ihrer Anwendung geschriebenen Ereignisnachricht. Wenn Sie einen Nachrichtenkatalog kompilieren, wird eine Headerdatei erstellt, die für jede Ereignisnachrichtennummer, die Sie erstellt haben, symbolische Werte definiert. Diese Headerdatei wird von Ihrer Anwendung eingefügt.
mc -v -w -s -h c:\mymessages -r c:\mymessages mymsg.mc
Dabei gilt: c:\mymessages ist der Pfad und das Verzeichnis für die Ausgabedateien, und mymsg.mc ist der Name der Eingabedatei.
Der Nachrichten-Compiler erzeugt eine Ausgabeheaderdatei (.h), die symbolische '#defines' enthält, die den einzelnen Nachrichtennummern zugeordnet sind, die in der MC-Eingabedatei codiert sind. Diese Headerdatei muss eingefügt werden, wenn eine benutzerdefiniert Erweiterungs-Quellendatei kompiliert wird, die die Dienstprogrammfunktion CciLog verwendet, um eine von Ihnen definierte Ereignisnachricht zu schreiben. Das Argument messageNumber für CciLog muss den entsprechenden als Hash definierten Wert in der Ausgabeheaderdatei verwenden.
RC /v <Dateiname>.rc
LINK /DLL /NOENTRY <Dateiname>.res
regedit
HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services EventLog Application
Klicken Sie mit der rechten Maustaste auf Application, und wählen Sie Neu->Schlüssel aus. Der neue Schlüssel wird direkt unter dem Schlüssel 'Application' erstellt (nicht unter dem Schlüssel 'WebSphere Message Broker'). Sie müssen dem Schlüssel den Namen geben, den Sie im Parameter messageSource des Aufrufs CciLog angeben.