Die folgenden Debugnachrichten helfen Ihnen, die Ausführung Ihrer benutzerdefinierten Knoten und Parser zu verstehen:
- BIP2233 und BIP2234: zwei zusammengehörige Nachrichten, die vor bzw. nach jedem Aufruf einer Implementierungsfunktion einer benutzerdefinierten Erweiterung aufgezeichnet werden. In diesen Nachrichten werden die Eingabeparameter und zurückgegebenen Werte angegeben. Beispiel:
BIP2233 Benutzerdefinierte Erweiterungsfunktion [Funktionsname] wird aufgerufen ([Parameter des Funktionsaufrufs])
BIP2234 Von benutzerdefinierter Erweiterungsfunktion [Funktionsname] mit Ergebnis zurückgegeben [Ergebnis des Aufrufs]Anmerkung: In diesen Nachrichten kann mit Implementierungsfunktion eine Implementierungsfunktion in C oder eine Implementierungsmethode in Java gemeint sein.
BIP2308: Eine Nachricht, die protokolliert wird, wenn der Broker eine
LIL-Datei nicht laden konnte.BIP2308 Datei [Name der LIL-Datei] konnte
nicht geladen werden; Rückkehrcode vom Betriebssystem [vom Betriebssystem zurückgegebener
Fehlercode]

- BIP3904: Nachricht, für die vor dem Aufruf der Java-Methode evaluate() eines benutzerdefinierten Knotens ein Trace durchgeführt wurde.
Beispiel:
BIP3904 (für Java): Aufruf der Methode 'evaluate()' des Knotens (class=[Knotenklassenname], name=[Bezeichnung des Knotens im Nachrichtenfluss]); dabei steht Knotenklassenname für den Namen der benutzerdefinierten Java-Erweiterungsklasse.
- BIP3905: Nachricht, für die vor dem Aufrufen der
C-Implementierungsfunktion cniEvaluate (iFpEvaluate ist dabei
Mitglied der Struktur CNI_VFT) eines benutzerdefinierten Knotens ein Trace durchgeführt
wurde. Beispiel:
BIP3905 (für C): Aufruf der Implementierungsfunktion 'cniEvaluate()' des Knotens (class=[Knotenklassenname], name=[Bezeichnung des Knotens im Nachrichtenfluss]); dabei steht Knotenklassenname für den Namen der benutzerdefinierten Erweiterungsklasse, die von der benutzerdefinierten Erweiterung beim Aufruf von 'C cniDefineNodeClass' zur Verfügung gestellt wird.
- BIP4142: Eine Debugnachricht, die beim Aufruf einer
benutzerdefinierten Knoten-Dienstprogrammfunktion aufgezeichnet wird, wenn es sich um
eine Dienstprogrammfunktion handelt, die den Zustand eines Syntaxelements verändert. Dazu
gehören alle Dienstprogrammfunktionen, die mit cniSetElement*
beginnen, wobei * für alle Knoten mit diesem Stamm steht.
Beispiel:
BIP4142 cniSetElement bewerten [Typ der Element-ID]. Wert wird
von [Wert vor Änderung durch Benutzer] zu [Wert nach Änderung durch Benutzer]
geändert.
- BIP4144 und BIP4145: Zwei zusammengehörige Nachrichten, die vor bzw. nach jedem Aufruf bestimmter Implementierungsfunktionen aufgezeichnet werden, die, wenn sie von einer benutzerdefinierten Erweiterung aus aufgerufen werden, den internen Zustand eines Nachrichtenbroker-Objekts modifizieren können. Zu den möglichen Objekten eines Nachrichtenbrokers gehören Syntaxelement, Knoten und Parser. Durch diese Nachrichten werden die Eingabeparameter aufgelistet, die für die aufgerufene Methode und den zurückgegebenen Wert bereitgestellt sind. Beispiel:
BIP4144 Eingegebene Funktion
[Funktionsname] ([Parameter des Funktionsaufrufs])
BIP4145 Beendete Funktion
[Funktionsname] mit Ergebnis: [zurückzugebendes Ergebnis]
In diesen Nachrichten kann mit Implementierungsfunktion eine Implementierungsfunktion in C oder eine Implementierungsmethode in Java gemeint sein.
Zu den C-Implementierungsfunktionen, durch die die Nachrichten BIP4144 und BIP4145
aufgerufen werden, gehören die folgenden Methoden:
Für benutzerdefinierte Parser |
Für benutzerdefinierte Knoten |
cpiCreateParserFactory |
cniCreateElement* |
cpiDefineParserClass |
cniDeleteMessage |
cpiAppendToBuffer |
cniAdd* |
cpiCreateElement |
cniDetach |
cpiCreateAndInitializeElement |
cniCopyElementTree |
cpiAddBefore |
cniFinalize |
cpiAddAfter |
cniWriteBuffer |
cpiAddAsFirstChild |
cniSql* |
cpiAddAsLastChild |
cniSetInputBuffer |
cpiSetNameFromBuffer |
cniDispatchThread |
(* stellt alle Knoten mit diesem Stamm dar; z. B. cniAdd* enthält
cniAddAfter, cniAddasFirstChild, cniAddasLastChild und cniAddBefore.)
Die
Java-Methoden, die die Nachrichten BIP4144 und
BIP4145 aufrufen, sind folgende:
Für benutzerdefinierte Knoten |
com.ibm.broker.plugin.MbElement.CreateElement* |
com.ibm.broker.plugin.MbElement.add* |
com.ibm.broker.plugin.MbElement.detach |
com.ibm.broker.plugin.MbElement.copyElementTree |
- BIP4146: Eine Debugnachricht, die beim Aufruf einer
benutzerdefinierten Parser-Dienstprogrammfunktion aufgezeichnet wird, wenn es sich um
eine Dienstprogrammfunktion handelt, die den Zustand eines Syntaxelements verändert. Dazu
gehören alle Dienstprogrammfunktionen, die mit cpiSetElement* beginnen,
wobei * für alle Knoten mit diesem Stamm steht.
Beispiel:
BIP4146 cpiSetElement bewerten [Typ der Element-ID]. Wert wird von [Wert vor Änderung durch Benutzer] zu [Wert nach Änderung durch Benutzer] geändert.
Informationen
zur benutzerdefinierten API für C finden Sie im Abschnitt
Benutzerdefinierte C-Parser-API und
Benutzerdefinierte C-Knoten-API.
- BIP4147: Fehlernachricht, für die ein Trace durchgeführt wird, wenn eine benutzerdefinierte Erweiterung ein ungültiges Eingabeobjekt an die API-Dienstprogrammfunktion einer benutzerdefinierten Erweiterung übergibt. Beispiel:
BIP4147 Der Eingabeparameter einer benutzerdefinierten Erweiterung hat die Gültigkeitsprüfung des Debuggers nicht bestanden. Der an Funktion [Funktionsname] übergebene Eingabeparameter [Parametername] ist kein gültiges Objekt.
- BIP4148: Fehlernachricht, für die ein Trace durchgeführt wird, wenn das Objekt eines Brokers durch eine benutzerdefinierte Erweiterung beschädigt wird. Beispiel:
BIP4148 Das Objekt des Brokers wurde durch die benutzerdefinierte Erweiterung beschädigt. Die Funktion [Funktionsname] hat das als Parameter [Parametername] übergebene Objekt des Brokers beschädigt.
- BIP4149: Fehlernachricht, für die ein Trace durchgeführt wird, wenn eine benutzerdefinierte Erweiterung einen ungültigen Eingabedatenzeiger an die API-Dienstprogrammfunktion einer benutzerdefinierten Erweiterung übergibt. Beispiel:
BIP4149 Der Eingabeparameter einer benutzerdefinierten Erweiterung hat die Gültigkeitsprüfung des Debuggers nicht bestanden. Der an Funktion [Funktionsname] übergebene Eingabeparameter [Parametername] ist ein NULL-Zeiger.
- BIP4150: Fehlernachricht, für die ein Trace durchgeführt wird, wenn eine benutzerdefinierte Erweiterung ungültige Eingabedaten an die API-Dienstprogrammfunktion einer benutzerdefinierten Erweiterung übergibt. Beispiel:
BIP4150 Der Eingabeparameter einer benutzerdefinierten Erweiterung hat die Gültigkeitsprüfung des Debuggers nicht bestanden. Der an Funktion [Funktionsname] übergebene Eingabeparameter [Parametername] hat keinen gültigen Wert.
- BIP4151: Debugnachricht, für die ein Trace ausgeführt wird, wenn cniGetAttribute2 oder cniGetAttributeName2 den Rückkehrcode auf einen unerwarteten Wert setzt. Erwartete Werte sind CCI_SUCCESS, CCI_ATTRIBUTE_UNKNOWN
und CCI_BUFFER_TOO_SMALL. Alle anderen Werte sind unerwartete Werte. Beispiel:
BIP4151 Die Implementierungsfunktion
[Funktionsname] der benutzerdefinierten Erweiterung hat einen unerwarteten Wert zurückgegeben.
- BIP4151: Debugnachricht, für die ein Trace ausgeführt wird, wenn cniGetAttribute2 oder cniGetAttributeName2 den Rückkehrcode auf CCI_BUFFER_TOO_SMALL setzt. Obwohl cniGetAttribute2 oder cniGetAttributeName2 anschließend erneut und mit der richtigen Puffergröße aufgerufen werden, hat der Rückkehrcode weiterhin den Wert CCI_BUFFER_TOO_SMALL. Beispiel:
BIP4152 Die Implementierungsfunktion [Funktionsname] der benutzerdefinierten Erweiterung hat beim zweiten Versuch den Wert CCI_BUFFER_TOO_SMALL zurückgegeben.