The cciNodeCompletionCallback function can be registered as a callback and is called whenever a node has completed processing of a message and is returning control to its upstream node.
The cciNodeCompletionCallback function is called for every message that is propagated in the integration server where the callback was registered, if the user exit state is active. The callback is registered by providing a pointer to the function as the iFpNodeCompletionCallback field of the CCI_UE_VFT struct that is passed to cciRegisterUserExit.
If the node completes due to an unhandled exception, it returns with a reasonCode of CCI_EXCEPTION, and that exception's details can be obtained by calling cciGetLastExceptionData.
If the node completes normally (including handling an exception on the catch or failure terminal), it returns with a reasonCode of CCI_SUCCESS. In this case, calling cciGetLastExceptionData returns unpredictable results.
typedef void (*cciNodeCompletionCallback) (
CciDataContext* userContext,
CciMessage* message,
CciMessage* localEnvironment,
CciMessage* exceptionList,
CciMessage* environment,
CciConnection* connection,
int reasonCode);
The user exit code must not update transport headers or Properties elements in the message tree. Updating the message can affect performance. Changes that are made during this callback are visible only if the upstream node does not cause a new Message to be created.
None.
void myNodeCompletionCallback(
CciDataContext* userContext,
CciMessage* message,
CciMessage* localEnvironment,
CciMessage* exceptionList,
CciMessage* environment,
CciConnection* connection
int reasonCode){
…
…
}