Die Funktion 'cciNodeCompletionCallback' kann als Callback registriert werden und wird aufgerufen, wenn ein Knoten mit dem Verarbeiten einer Nachricht fertig ist und die Steuerung an den vorgelagerten Knoten übergibt.
Die Funktion 'cciNodeCompletionCallback' wird für jede Nachricht aufgerufen, die innerhalb der Ausführungsgruppe, in welcher der Callback registriert wurde, weitergegeben wird, wenn der Benutzerexitstatus aktiv ist. Der Callback wird registriert, indem ein Zeiger auf die Funktion als iFpNodeCompletionCallback-Feld des CCI_UE_VFT-Strukts bereitgestellt wird, das an cciRegisterUserExit übergeben wurde.
Wenn der Knoten aufgrund einer nicht bearbeiteten Ausnahme abgeschlossen wird, wird er mit reasonCode von 'CCI_EXCEPTION' zurückgegeben, und die Details dieser Ausnahme können durch Aufrufen von cciGetLastExceptionData abgefragt werden.
Wenn der Knoten normal abgeschlossen wird (einschließlich Bearbeiten einer Ausnahme beim Catch- oder Fehlerterminal (Failure)), wird er mit reasonCode 'CCI_SUCCESS' zurückgegeben. In diesem Fall gibt das Aufrufen von cciGetLastExceptionData unvorhersehbare Ergebnisse zurück.
typedef void (*cciNodeCompletionCallback) (
CciDataContext* userContext,
CciMessage* message,
CciMessage* localEnvironment,
CciMessage* exceptionList,
CciMessage* environment,
CciConnection* connection,
int reasonCode);
Der Benutzerexitcode darf die Transportheader oder Eigenschaftselemente in der Nachrichtenbaumstruktur nicht aktualisieren. Die Aktualisierung der Nachricht kann die Leistung beeinträchtigen. Änderungen, die während dieses Callbacks vorgenommen werden, sind nur sichtbar, wenn der vorgeschaltete Knoten nicht veranlasst, dass eine neue Nachricht erstellt wird.
Keine.
void myNodeCompletionCallback(
CciDataContext* userContext,
CciMessage* message,
CciMessage* localEnvironment,
CciMessage* exceptionList,
CciMessage* environment,
CciConnection* connection
int reasonCode){
…
…
}