Die folgenden Debugnachrichten helfen Ihnen, die Ausführung Ihrer benutzerdefinierten Knoten und Parser zu verstehen:
- BIP2233 und BIP2234: Es wird ein Nachrichtenpaar aufgerufen, für das vor und nach einer Implementierungsfunktion für eine benutzerdefinierte Erweiterung ein Trace durchgeführt wird. 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: Eine 'Implementierungsfunktion' kann in diesen Nachrichten als C-Implementierungsfunktion oder als Java-Implementierungsmethode interpretiert werden.
- 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): Die Methode evaluate() des Knotens (class=[Knotenklassenname], name=[Bezeichnung des Knotens im Nachrichtenfluss]) aufrufen; 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): Die Implementierungsfunktion cniEvaluate() des Knotens (class=[Knotenklassenname], name=[Bezeichnung des Knotens im Nachrichtenfluss]) wird aufgerufen; 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.
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: Nachrichtenpaar, für das ein Trace mit bestimmten Implementierungsfunktionen durchgeführt wurde. Wenn diese Nachrichten von einer benutzerdefinierten Erweiterung aufgerufen werden, können Sie den internen Status des Objekts eines Nachrichtenbrokers ändern. 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]
Eine 'Implementierungsfunktion' kann in diesen Nachrichten als C-Implementierungsfunktion oder als Java-Implementierungsmethode interpretiert werden.
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, durch die Nachrichten BIP4144 und
BIP4145 aufgerufen werden, 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 benutzerdefinierte 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 benutzerdefinierte 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.