Java 用户定义的消息处理节点生命周期

本主题指导您通过用 Java 编程语言编写的、用户定义的消息处理节点的生命的各个阶段。它涉及已创建和已破坏的对象,并且在以下阶段中调用了方法和类:

本主题中的信息适用于输出节点和消息处理节点。这两种节点类型可以视为一体,这是因为尽管消息处理节点通常用于处理消息,而输出节点用于从消息提供位流格式的输出,但是您可以使用这两个节点类型中的任何一个来执行这两种功能中的任何一种。

注册

当用 Java 编写的用户定义的消息处理节点为代理所知或向代理进行注册时,发生注册阶段。

无论何时启动代理,都会装入所有相关的 lil 和 Java 类。要确保向代理注册了消息处理节点,您必须将实现 MbNodeInterface 接口的类与代理一起提供,并且包含在代理的类路径中。

实例化

当代理部署包含用户定义的消息处理节点的消息流时,实例化 Java 用户定义的消息处理节点。当例示节点时,调用消息处理节点的类的构造函数。

实例化节点时,会创建任何已指定的终端。消息处理节点可以具有与其相关的任何个数的输入和输出终端。为了声明这些终端,您必须在您的节点构造函数中包含 createInputTerminalcreateOutputTerminal 方法。

输出终端包括 out、failure 和 catch 终端。为了按您需要创建许多输出终端,使用节点类构造函数内的 createOutputTerminal 类。

作为最小值,您仅需要使用您的构造函数类创建这些输出终端。然而,如果您需要初始化属性值则您还应该在消息处理节点的这一点包括该代码。

如果您要处理传回消息处理节点的异常,一个好的方法是使用 createOutputTerminal 方法,为您的用户定义的消息处理节点创建一个故障终端。 为此处理使用故障终端是明智的,因为这是 WebSphere Message Broker 错误要传播至的地方。

确保正确处理了由消息处理节点捕获的任何异常。如果您不包括故障终端,则消息处理节点将不会尝试处理异常。如果消息流不包含任何的异常处理方法,则所抛出的任何异常都传回到将处理它们的输入节点。

如果您捕获了异常,则确保您重新抛出任何消息处理节点无法处理的异常。 这会使异常传回到进行处理的输入节点,例如,当您要回滚一个事务时。

处理

在用户定义的消息处理节点的生命周期处理阶段,消息处理节点接受消息的逻辑层次结构并用一些方法处理它。

消除

当删除节点或关闭代理时破坏 Java 用户定义的消息处理节点。您不需要在您的代码中包含任何内容以指定应该物理删除该节点,因为,这可以由垃圾收集器来处理。

但是,如果您要通知要删除节点,则可以使用 onDelete 方法。 如果有要删除的(而不是要进行垃圾收集的)那些资源,则可能要执行此操作。例如,如果您已经打开了套接字,则自动删除节点时,不会正确关闭。您可以在 onDelete 方法中包括此指令来确保正确关闭了该套接字。

声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
as24999_