cniRun

Diese Funktion deklariert den Knoten als Empfangsknoten. Nachrichtenverarbeitungs- und Sendeknoten verwenden sie nicht, und Sie brauchen cniEvaluate nicht aufzurufen. WebSphere Message Broker legt einen Thread an und ruft diese Funktion mit dem Thread auf.

Definiert in Typ Mitglied
CNI_VFT Bedingt iFpRun

Syntax

int cniRun(                       
  CCiContext*  context,
  CCiMessage*  destinationList,
  CciMessage* exceptionList,          
  CciMessage* message                 
);

Parameter

context
Die Adresse des Kontextes für die Instanz des Knotens, der vom Knoten erstellt und von der Funktion cniCreateNodeContext (Eingabe) zurückgegeben wurde.
destinationList
Die Adresse des Eingabeziellistenobjekts (Eingabe).
exceptionList
Die Adresse der Ausnahmeliste für die Nachricht (Eingabe).
message
Die Adresse des Nachrichtenobjekts, dem die Daten hinzugefügt werden sollen (Eingabe).

Der benutzerdefinierte Knoten kann dieser Nachricht einen Bitstrom durch Aufruf von cniSetInputBuffer zuordnen. Das Auffüllen der Baumstruktur dieser Nachricht wird nicht unterstützt, daher sind Aufrufe von Funktionen wie z. B. cniAddAsLastChild oder cniCreateElementAsLastChildFromBitstream wirkungslos. Um Teile der Baumstruktur zu erstellen anstatt einen Puffer bereitzustellen, der als ganze Nachricht syntaktisch analysiert wird, sollten Sie eine neue Nachricht unter Verwendung von cniCreateMessage erstellen.

Wenn beispielsweise ein Bitstrom als Nachrichtenteil mit den Nutzinformationen verwendet werden soll, und Sie einen Header hinzufügen möchten, führen Sie folgende Schritte aus:
  1. Erstellen Sie eine neue Nachricht unter Verwendung von cniCreateMessage.
  2. Erstellen Sie den Header in dieser neuen Nachricht unter Verwendung der Funktionen des Dienstprogramms für den Zugriff auf Syntaxelemente (z. B. cniCreateElementAsLastChildUsingParser), und übergeben Sie das Stammelement dieser neuen Nachricht.
  3. Fügen Sie zum Header Felder hinzu, indem Sie Funktionen wie z. B. cniCreateElementAsLastChild verwenden.
  4. Erstellen Sie den Hauptteil der Nachricht, indem Sie Ihren Bitstrom durch Aufruf von cniCreateElementAsLastChildFromBitstream syntaktisch analysieren, und das Stammelement dieser neuen Nachricht übergeben.

Rückgabewerte

Diese Funktion wird vom Broker als Teil einer Schleife aufgerufen. Die Bedeutung des Rückgabewertes wird im Folgenden beschrieben.

CCI_TIMEOUT
Der Empfangsknoten hat seine Eingabedaten nicht empfangen, und die Steuerung muss an WebSphere Message Broker zurückgegeben werden, falls die erneute Konfiguration des Nachrichtenflusses angefordert wird. Die Rückgabe eines benutzerdefinierten Empfangsknotens sollte in angemessenen Abständen stattfinden, damit die Steuerung an WebSphere Message Broker zurückgegeben werden kann.
CCI_SUCCESS_CONTINUE
Eine Nachricht wurde erfolgreich verarbeitet. Die COMMIT-Verarbeitung für Standardtransaktionen wird von WebSphere Message Broker ausgeführt. Die Implementierungsfunktion cniRun des Empfangsknotens wird sofort aufgerufen, so dass die Verarbeitung des Knotens fortgesetzt werden kann.
CCI_SUCCESS_RETURN
Eine Nachricht wurde erfolgreich verarbeitet. Die COMMIT-Verarbeitung für Standardtransaktionen wird von WebSphere Message Broker ausgeführt. Der Empfangsknoten hat bestimmt, dass der Thread nicht erforderlich ist und an den Thread-Pool des Nachrichtenflusses zurückgegeben wird. Wenn es sich dabei um den einzigen Thread oder den letzten aktiven Thread handelt, verhindert WebSphere Message Broker, dass dieser letzte Thread an den Pool zurückgegeben wird, ansonsten wären keine aktiven Threads mehr vorhanden, die einen anderen Thread zuteilen können. In dieser Situation ruft WebSphere Message Broker die Implementierungsfunktion cniRun sofort auf, wie wenn CCI_SUCCESS_CONTINUE zurückgegeben wurde.
CCI_FAILURE_CONTINUE
In der Verarbeitung einer Nachricht ist ein Fehler aufgetreten, und der Knoten fordert die Zurücksetzung der Transaktion an. Die Implementierungsfunktion cniRun des Empfangsknotens wird sofort aufgerufen.
CCI_FAILURE_RETURN
In der Verarbeitung einer Nachricht ist ein Fehler aufgetreten, und der Knoten fordert die Zurücksetzung der Transaktion an. Der Empfangsknoten hat jedoch bestimmt, dass der Thread nicht erforderlich ist und an den Thread-Pool des Nachrichtenflusses zurückgegeben werden kann. Wenn es sich dabei um den den letzten aktiven Thread handelt, verhindert WebSphere Message Broker, dass dieser letzte Thread an den Pool zurückgegeben wird, ansonsten wären keine aktiven Threads mehr vorhanden, die einen anderen Thread zuteilen können. In dieser Situation ruft WebSphere Message Broker die Implementierungsfunktion cniRun sofort auf, wie wenn CCI_FAILURE_CONTINUE zurückgegeben wurde.
Zugehörige Konzepte
Benutzerdefinierte Empfangsknoten
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
as07480_