WebSphere Message Brokers
File: as35940_
Writer: Lorraine Waitt

Reference topic

This build: July 31, 2007 21:38:55

cciNodeCompletionCallback

This is a function that can be registered as a callback and is invoked whenever a node has completed processing of a message and is returning control to its upstream node. It is invoked for every message propagated within the execution group 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 passed to cciRegisterUserExit.

If the node completed due to an unhandled exception, then it returns with a reasonCode of CCI_EXCEPTION and that exception’s details can be obtained by calling cciGetLastExceptionData.

If the node completed normally (including handling an exception on the catch or failure terminal) then it returns with a reasonCode of CCI_SUCCESS.
Note: In this case, calling cciGetLastExceptionData returns unpredictable results.

Syntax

typedef void (*cciNodeCompletionCallback)   (
                                 CciDataContext* userContext,
                                 CciMessage*     message,
                                 CciMessage*     localEnvironment,
                                 CciMessage*     exceptionList,
                                 CciMessage*     environment,
                                 CciConnection*  connection,
                                 int             reasonCode);

Parameters

userContext (input)
This is the value that was passed to the cciRegisterUserExit function.
message
This is a handle to the message object being propagated. The user exit code must not update this tree.
localEnvironment
This is a handle to the local environment object being propagated.
exceptionList
This is a handle to the exception list object being propagated.
environment
This is a handle to the environment object for the current message flow.
connection
This is a handle to the connection object between the two nodes. It can be used, for example, in calls to cciGetSourceNode, cciGetTargetNode, cciGetSourceTerminalName, and cciGetTargetTerminalName. This handle is valid only for the duration of this invocation of the user exit function.
reasonCode
This indicates whether the node completed normally (CCI_SUCCESS) or the node completed due to an unhandled exception (CCI_EXCEPTION). If the node completed due to an unhandled exception, then that exception’s details can be obtained by calling cciGetLastExceptionData. If the node completed normally (including handling an exception on the catch or failure terminal) then the effect of calling cciGetLastExceptionData is undetermined.

Return values

None.

Example

void myNodeCompletionCallback(
                                 CciDataContext* userContext,
                                 CciMessage*     message,
                                 CciMessage*     localEnvironment,
                                 CciMessage*     exceptionList,
                                 CciMessage*     environment,
                                 CciConnection*  connection
                                 int             reasonCode){
…
…
}
Related concepts
User exits
Related tasks
Developing a user exit
Notices | Trademarks | Downloads | Library | Support | Feedback

Copyright IBM Corporation 1999, 2007Copyright IBM Corporation 1999, 2007. All Rights Reserved.
This build: July 31, 2007 21:38:55

as35940_ This topic's URL is: