WebSphere Message Broker, Version 8.0.0.7
Operating Systems: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS
See information about the latest product version
See information about the latest product version
cciPropagatedMessageCallback
The cciPropagatedMessageCallback function can be registered as a callback and is called whenever a message is propagated from one node to another.
The cciPropagatedMessageCallback function is called for every message that is propagated in 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 iFpPropagatedMessageCallback field of the CCI_UE_VFT struct that is passed to cciRegisterUserExit.
Syntax
typedef void (*cciPropagatedMessageCallback)(
CciDataContext* userContext,
CciMessage* message,
CciMessage* localEnvironment,
CciMessage* exceptionList,
CciMessage* environment,
CciConnection* connection);
Parameters
- userContext (input)
- The value that is passed to the cciRegisterUserExit function.
- message
- A handle to the message object that is being propagated. The user exit code must not update transport headers or Properties elements in this tree. Updating the message can affect performance, particularly if the input message would not otherwise be changed in the message flow.
- localEnvironment
- A handle to the local environment object that is being propagated.
- exceptionList
- A handle to the exception list object that is being propagated.
- environment
- A handle to the environment object for the current message flow.
- connection
- A handle to the connection object between the two nodes. The handle can be used, for example, in calls to cciGetSourceNode, cciGetTargetNode, cciGetSourceTerminalName, and cciGetTargetTerminalName. This handle is valid only for the duration of this instance of the user exit function.
Return values
None.
Example
void myPropagatedMessageCallback(
CciMessage* message,
CciMessage* localEnvironment,
CciMessage* exceptionList,
CciMessage* environment,
CciConnection* connection){
int rc = CCI_SUCCESS;
CciNode* targetNode = cciGetTargetNode(amp rc,
connection);
CciChar targetNodeName [initialStringBufferLength];
targetNodeNameLength = cciGetNodeName(amp rc,
targetNode,
targetNodeName,
initialStringBufferLength);
/*you should now check the rc for unexpected values*/
/*if rc is CCI_BUFFER_TOO_SMALL, resize and retry*/
}