cciNodeCompletionCallback

这是一个可以注册成回调的函数,每当节点完成对消息的处理时都会调用它,并将控制返回到它的上游节点。如果用户出口处于活动状态,则会为在注册回调的执行组中传播的每个消息调用该函数。在传递到 cciRegisterUserExit 的 CCI_UE_VFT 结构的 iFpNodeCompletionCallback 字段中提供指向函数的指针,可以注册回调。

如果由于未解决的异常而使节点完成,则它返回 CCI_EXCEPTION 的 reasonCode,并且可以通过调用 cciGetLastExceptionData 来获得该异常的详细信息。

如果节点正常完成(包括在捕获异常的终端或失败的终端上处理异常),则它返回 CCI_SUCCESS 的 reasonCode
注: 在这种情况下,调用 cciGetLastExceptionData 将返回不可预计的结果。

语法

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

参数

userContext(输入)
这是传递到 cciRegisterUserExit 函数的值。
message
这是被传播的消息对象的句柄。用户出口代码不得更新该树。
localEnvironment
这是被传播的本地环境对象的句柄。
exceptionList
这是被传播的异常列表对象的句柄。
environment
这是当前消息流的环境对象的句柄。
connection
这是两个节点间连接对象的句柄。比如它可以用来调用 cciGetSourceNodecciGetTargetNodecciGetSourceTerminalNamecciGetTargetTerminalName。该句柄仅在调用该用户出口函数期间有效。
reasonCode
这表明节点是正常完成(CCI_SUCCESS),还是由于未解决的异常而完成(CCI_EXCEPTION)。如果由于未解决的异常而使节点完成,则调用 cciGetLastExceptionData 可以获得该异常的详细信息。 如果节点正常完成(包括在捕获异常的终端或失败的终端上处理异常),则调用 cciGetLastExceptionData 的效果是不确定的。

返回值

无。

示例

void myNodeCompletionCallback(
                                 CciDataContext* userContext,
                                 CciMessage* message,
                                 CciMessage* localEnvironment,
                                   CciMessage* exceptionList,          
                                 CciMessage* environment,
                                 CciConnection* connection
                                 int reasonCode){
…
…
}
相关概念
建立用户出口
相关任务
建立用户出口
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
as35940_