环境树是逻辑消息树的一部分,当消息经过消息流时,可以在其中存储信息。
环境树的根称为 Environment。此树始终出现在输入消息中;当输入节点接收到消息并对其进行解析时将创建一个空的 Environment 树。您可以选择使用此树,并创建它的内容和结构。
有一种 WebSphere Message Broker 引用(但从不创建)此树中某字段的情况。如果您已经请求了数据集用于消息流记帐和统计信息,并指示了需要记帐原点基本支持,则代理将检查是否存在 Environment.Broker.AccountingOrigin 字段。如果该字段存在,代理将使用它的值来设置当前数据记录的记帐原点。有关使用此字段的更多信息,请参阅设置消息流记帐和统计信息记帐原点。(请将此内容与LocalEnvironment 树结构对照,代理在几种情况下会使用后者。)
Environment 树与 LocalEnvironment 树的不同之处在于,它的单个实例在整个消息流中维护。如果在消息流中包含 Compute 节点,无需指定是否要将 Environment 树包含在输出消息中。这会自动发生,并且输入 Environment 树的全部内容都保留在输出 Environment 树中,取决于您在节点中使用 ESQL 所作的任何修改。您所作的任何更改都可用于消息流中的后继节点,如果消息流回流(例如到 FlowOrder 或 TryCatch 节点),则还可用于先前节点。
建议您在 Environment 树中称为 Variables 的子树中创建信息(尽管不强制执行此操作)。
下面显示了 Environment 树的示例。
您应该使用以下 ESQL 语句创建上面显示的内容。
SET Environment.Variables = ROW('granary' AS bread, 'riesling' AS wine, 'stilton' AS cheese); SET Environment.Variables.Colors[] = LIST{'yellow', 'green', 'blue', 'red', 'black'}; SET Environment.Variables.Country[] = LIST{ROW('UK' AS name, 'pound' AS currency), ROW('USA' AS name, 'dollar' AS currency)};
当完成消息处理后,会废弃 Environment 树。