LocalEnvironment 树结构

LocalEnvironment 树是逻辑消息树的一部分,您可在消息流处理消息时将信息存储在其中。

LocalEnvironment 树的根称为 LocalEnvironment。该树始终出现在输入消息中:当输入节点接收到消息时,会创建一个空的 LocalEnvironment 树。

使用 LocalEnvironment 树来存储由消息流中稍后出现的消息处理节点引用和更新的变量。 您还可以使用 LocalEnvironment 树来定义消息可以送达的目的地(可以在消息流内部和外部)。 WebSphere Message Broker 在某些情况下也会将信息存储在 LocalEnvironment 中,并引用它以访问您可能已为目的地设置的值。(将其与 环境树结构进行比较,代理仅在一种情况下引用该树。)

下图显示 LocalEnvironment 树结构。Destination 的子代是协议相关的。下面的示例显示了 WebSphere MQ 消息的结构。如果消息由另一个内置解析器或用户定义的解析器进行解析,Destination 元素下的树结构的内容与图中显示的内容不同。


由提供的输入节点和解析器创建的本地 Environment 树结构

在上面显示的树结构中,LocalEnvironment 有三个子代:

Variables
此子树是可选的。如果创建本地环境变量,建议您将这些变量存储在名为 Variables 的子树中。它提供了一个工作区,您可以用此工作区在节点之间传递信息。 任何所提供的节点都不会检查或修改此子树。

本地环境中的变量可由任何后继消息处理节点进行更改,并会持续到消息流不再有效且创建消息流的节点完成其工作并将控制返回给上一个节点。

此子树中的变量只在单个消息流实例中是持久的。如果有多个消息实例通过此消息流传递,并需要在它们之间传递消息,则必须使用外部数据库。

Destination
此子树由许多子代组成,这些子代表明将消息导向哪种消息传输类型(“传输”标识),或是 RouteToLabel 节点使用的目标 Label 节点。
  • 传输信息

    传输信息由某些输入和输出节点使用。

    如果消息流始自 HTTPInput 节点,则单名称元素 HTTP 会添加到 Destination。会创建并初始化元素 HTTP.RequestIdentifier 以使其可由 HTTPReply 节点使用。您也可以在 HTTP 结构中创建其他字段用于 HTTPRequest 节点,例如请求所发送到的 URL 服务。每个节点的主题包含了更多有关 WebSphere MQ Web Services 传输方式 协议的 Destination 内容的信息。

    如果消息流包含 MQOutput 节点,则每个元素都是单名称元素 MQDestinationList。如果存在多个元素,则节点将会按顺序对它们进行处理。

    如果在消息流中包含了用户定义的输出节点,则 Destination(如果受支持)的内容由该节点定义。

    您可以将属性目的地方式设置为目的地列表来配置输出节点,以查看目的地列表并将消息发送到这些目的地。如果按此执行,必须创建该子树及其内容以定义这些目的地,并将其命名为 Destination。如果未按此执行,则输出节点无法传递消息。

    如果愿意,您可以通过将属性目的地方式设置成队列名应答队列来配置输出节点,以将消息发送到单个固定目的地。如果选择这些固定选项的其中一个,目的地列表就不会对代理操作有任何影响,并且您不必再创建此子树。

    可构造 MQ 元素来包含单个可选 Defaults 元素。如果创建了 Defaults 元素,则它必须是第一个子代,而且必须包含一组名称-值元素,这些名称-值元素提供消息目的地的缺省值及其对该父代的 PUT 选项。

    您还可以在 MQ 中创建多个名为 DestinationData 的元素。每一个这样的元素都可以用一组名称-值元素设置,这些名称-值元素定义了消息目的地及其 PUT 选项。

    DestinationData 子树中元素的数据类型中描述了定义目的地的一组元素。

    对于每个协议,DestinationData 的每个实例的内容与缺省的内容相同,且可用于覆盖缺省中的缺省值。您可以设置 Defaults 来包含通用于所有目的地的值,并仅在每个 DestinationData 子树中设置唯一值。如果未在 DestinationData 或 Defaults 中设置值,则使用您已为相应节点属性设置的值。同样,如果您指定的字段名称或值存在拼写或大小写错误,则会忽略这些错误,并使用您已为相应节点属性设置的值。

    您插入到 DestinationData 的信息语取决于相应节点属性的特征:访问 LocalEnvironment 树中对此进行了描述。

  • 路由信息

    Destination 的子代是 RouterList。它有一个名为 DestinationData 的单个子元素,该元素有一个名为 labelName 的条目。如果使用涉及 RouteToLabel 和 Label 节点的动态路由方案,则您必须使用包含引用标签的 RouterList 设置 Destination 子树。

WrittenDestination
此子树包含已写入消息的地址。其名称是固定的。它是在通过输出节点的 out 终端传播消息时由消息流创建的。其中包含特定于传输的信息(例如,如果已将输出消息放入 WebSphere MQ 队列,则它将包含队列管理器和队列名)。如果 out 节点的 out 终端未连接到另一个节点,则不会创建此子树。

每个输出节点的主题都包含了更多有关 WebSphere MQWebSphere MQ Everyplace 的 WrittenDestination 内容的信息。

当消息流处理完成时,会废弃 LocalEnvironment 树。

航空公司订票样本消息路由样本说明了如何使用 LocalEnvironment 以基于目的地列表动态路由消息。用户定义的扩展样本使用 LocalEnvironment 存储后来添加到消息流所创建的输出消息的信息。

相关概念
消息建模
环境树结构
相关任务
开发消息流
创建目的地列表
访问 LocalEnvironment 树
使用 LocalEnvironment 中的暂存区
编写 ESQL
编写 Java
相关参考
HTTPReply 节点
HTTPRequest 节点
MQeOutput 节点
MQOutput 节点
DestinationData 子树中元素的数据类型
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac00520_