在可以使用用户定义的节点前,您必须将构成用户定义的节点项目的文件部署到工作台。为此,在测试环境中,您可在工作台
中使用插件开发透视图,请参阅启用 PDE 运行时功能
。
使用运行 > 运行方式 > 运行时工作台选项来启动包含额外节点的工作台的新副本。有关此透视图的更多信息,请参阅PDE 指南。
打开消息流编辑器时,您可在选用板中看到新的节点。要测试新节点,将它添加到消息流(请参阅添加消息流节点)并像往常一样进行部署。如果您对节点定义表示满意,则将新节点添加到消息流编辑器的常规节点选用板中(请参阅分发用户定义的扩展)。
在此之前,新节点只可用于测试工作台会话中。
当您有包含新节点的工作台会话时,您可以将包含新节点的测试消息流部署到代理。您必须先创建、编译和安装插件节点,然后才能部署它。请参阅在代理域上安装用户定义的扩展,以获取更多信息。
您设置并部署了包含用户定义节点的消息流,然后将测试消息发送到它之后,有一些诊断工具可供您用于确定您的节点是否工作,或如果没有,则确定问题的起因。
使用事件日志。请参阅使用来自用户定义的扩展的事件日志,以获取更多信息。
- 检查事件日志(请参阅事件日志编辑器获取有关于此的信息)。
- 将 Trace 节点添加到消息流,并从其中检查输出(请参阅Trace 节点获取关于 Trace 节点的信息)。
- 使用流调试器来调试包含节点的流(请参阅测试和调试消息流应用程序获取有关于此的信息)。
以下调试消息可用于帮助您了解用户定义的节点和解析器的执行情况。
- BIP2233 和 BIP2234:调用用户定义的扩展实施函数之前和之后跟踪到的一对消息。这些消息会报告输入参数和返回的值。
在这些消息中,“implementation function”可以解释为 C 实施函数或 Java 实施方法。
- BIP3904:调用用户定义的节点的 Java evaluate() 方法之前跟踪到的消息。
- BIP3905:调用用户定义的节点的 C cniEvaluate() 实施函数(CNI_VFT 的 iFpEvaluate 成员)之前跟踪到的消息。
- BIP4142:调用用户定义的节点实用程序函数时跟踪到的调试消息,其中实用程序函数会改变语法元素的状态。这包括所有以 ptSen*lenent* 开头的实用程序函数,其中 * 表示带有该词干的所有节点。
- BIP4144 和 BIP4145:由某些实施函数跟踪到的一对消息,当这些实施函数由用户定义的扩展调用时,它们可以修改消息代理对象的内部状态。可能的消息代理对象包含语法元素、节点和解析器。
在这些消息中,“implementation function”可以解释为 C 实施函数或 Java 实施方法。
- BIP4146:调用用户定义的解析器实用程序函数时跟踪到的调试消息,其中实用程序函数会改变语法元素的状态。这包含所有以 cpiSetElement* 开头的实用程序函数,其中 * 表示带有该词干的所有节点。
有关 C 语言用户定义的节点 API 的信息,请参阅C 语言用户定义的解析器 API和C 语言用户定义的节点 API。
- BIP4147:用户定义的扩展将无效的输入对象传递至用户定义的扩展实用程序 API 函数时跟踪到的错误消息。
- BIP4148:用户定义的扩展破坏代理对象时跟踪到的错误消息。
- BIP4149:用户定义的扩展将无效的输入数据指针传递至用户定义的扩展实用程序 API 函数时跟踪到的错误消息。
- BIP4150:用户定义的扩展将无效的输入数据传递至用户定义的扩展实用程序 API 函数时跟踪到的错误消息。
- BIP4151:cniGetAttribute2 或 cniGetAttributeName2 将返回码设置为意外值时跟踪到的调试消息。期待获取的值为 CCI_SUCCESS、CCI_ATTRIBUTE_UNKNOWN 和 CCI_BUFFER_TOO_SMALL。除此以外的任何其他值均为意外值。
- BIP4152:在以下情况中跟踪到的调试消息:
- cniGetAttribute2 或 cniGetAttributeName2 将返回码设置为 CCI_BUFFER_TOO_SMALL。
- 使用正确大小的缓冲区再次调用了 cniGetAttribute2 或 cniGetAttributeName2,但是返回码被设置为 CCI_BUFFER_TOO_SMALL。
请参阅
解决有关用户定义的扩展的问题获取实施函数的完整列表。
要查找这些跟踪条目,打开调试级别的用户跟踪。请参阅使用跟踪,以获取更多信息。