Warehouse 节点

用途

使用 Warehouse 节点与指定的 ODBC 数据源中的数据库进行交互。Warehouse 节点是 Database 节点的专门格式,它将整个消息和/或部分消息存储在数据库内的表中。通过定义映射来定义存储的内容,这些映射使用来自输入消息的数据以标识必需的操作。

您可以使用消息仓库:

  • 维护通过代理传递的消息的审计跟踪。
  • 用于已经通过代理(数据挖掘)传递的消息的脱机处理或批处理。
  • 作为源,从中重新处理代理中的选定消息。

您可以检索已经使用标准数据库查询和挖掘技术存储在仓库中的消息。WebSphere Message Broker 没有明确提供支持。

您必须已经创建以下内容(或在其他人已经为您创建了以下内容时,必须已标识了它们):

  • 以消息集和消息的格式输入数据。
  • 到数据库的 ODBC 连接。
  • 存储消息的数据库和数据库表。
  • 表中至少两个列:一个用于二进制对象(消息),一个用于时间戳记。

Warehouse 节点在工作台中由以下图标表示:

Warehouse 节点图标

在消息流中使用此节点

当您使用 Warehouse 节点时,可以选择存储在与节点关联的数据库中:

  • 整个消息,可选地附带关联的时间戳记。作为二进制对象存储消息,并带有以分隔列表示的时间戳记。这样做有两个优点:
    1. 您不必预先确定将如何使用仓库数据;因为已经全部储存,所以能检索所有数据并且稍后对它应用数据挖掘工具。
    2. 您不必为可能通过代理传递的每个消息类型定义特定的数据库模式。在复杂的系统中,可能有许多不同的消息类型并抑制为每个消息类型定义唯一模式的开销。您可将 Compute 节点放在在每个 Warehouse 节点前,该 Compute 节点将每条消息转 换为具有一般模式的标准仓库格式,也可以将整个消息存储为二进制对象。
  • 选择部分消息,可选地附带一个相关的时间戳记。执行此操作要求为该消息类型定义数据库模式。消息映射到 true 类型,例如,作为数据库中的字符串存储消息中的字符串。

配置 Warehouse 节点

当您将 Warehouse 节点的实例放入消息流后,便可对它进行配置。右键单击编辑器视图中的节点,然后单击属性。 将显示该节点的基本属性。

对于必须为其输入值的所有必需属性(没有定义缺省值的属性),在属性对话框上都会用星号作标记。

如下所示配置 Warehouse 节点:

  1. 数据源中指定,在执行消息流的系统上相应数据库所知的名称。代理使用 mqsicreatebrokermqsichangebrokermqsisetdbparms 命令中指定的用户标识和密码信息连接此数据库。

    在 z/OS 系统上,代理使用 mqsisetdbparms 命令中指定的代理启动任务标识或用户标识和密码、JCL 和定制数据集 <hlq>.SBIPPROC 中的 BIPSDBP。

  2. 字段映射中,标识要在该节点中执行的映射例程。缺省情况下,指派给映射例程的名称与定义例程所在的映射文件的名称一致;而当您将文件的缺省名包含在消息流中时,它就是与节点名连接的消息流名称(例如,消息流 MFlow1 中第一个 Warehouse 节点的 MFlow1_Warehouse.mfmap)。指定的值中不能包含空格。

    如果单击这个输入字段旁边的浏览,会显示一个对话框,其中列出此节点可访问的所有可用映射例程。选择需要的例程,然后单击确定。 例程名称在字段映射中进行设置。

    要使用与此节点关联的映射例程,右键单击节点并选择打开映射。如果映射例程不存在,则在缺省文件中用缺省名称创建一个。 如果文件已存在,也可以在导航器视图中打开文件 <flow_name>_<node_name>.mfmap

    映射文件的内容确定在数据库中存储的内容及其格式。例如,您可以选择存储所有消息或仅存储每个消息的一部分。您还可以选择按二进制数据存储数据,或以消息中相同格式存储每个字段(例如,消息中的字符字段是作为数据库中的字符存储的)。

    映射例程专用于与其关联的节点类型;您无法将为 Warehouse 节点开发的映射例程与任何其他使用映射的节点(如,DataInsert 节点)一起使用。如果创建映射例程,尽管可以从 ESQL 例程调用此例程,但不能从其他任何映射例程调用。

  3. 从下拉菜单中选择事务设置。值为:
    • 自动(缺省值)。该消息流的一部分是 Warehouse 节点,如果成功就落实它。即,执行在映射中定义的操作并且消息继续通过消息流。如果消息流失败,则回滚。因此,选择自动表 示在数据库上落实或回滚 Warehouse 节点操作的功能取决于整个消息流的成败。
    • 落实。如果不考虑整个消息流的成败,要在连接到该节点的数据库上落实在该消息流中采取的任何未落实的操作,请选择落实。即使消息流本身失败也落实对数据库进行的更改。
  4. 在属性对话框导航器中选择“基本”,并选择或清除两个复选框:
    • 如果您要将数据库警告消息作为错误来处理,并且让节点将输出消息传播到失败终端,则选择将警告作为错误处理复选框。该框起初未选中。

      当您选择此框时,节点将所有数据库的正返回码按错误处理并将以同样的方法生成异常,如同对负或更严重的错误那样的方式。

      如果您没有选择框,则节点将警告作为正常返回码处理,并且不生成任何异常。生成的最明显的警告是未找到,在大多数情况下可以安全地作为正常返回码处理。

    • 如果在检测到数据库错误时想要代理生成异常,选择在数据库出错时抛出异常复选框。该框起初为选中。

      如果清除该框,则必须处理消息流中的错误来确保代理和数据库的完整性:如果您没有通过自己的处理来解决则忽略错误,因为您已经选择不调用由代理处理的缺省错误。例如,您可能将 failure 终端连接到错误处理子例程。

  5. 选择属性对话框导航器中的“描述”,以输入简短描述和/或详细描述。
  6. 单击应用在不关闭“属性”对话框的情况下对 Warehouse 节点进行更改。单击确定以应用更改,并关闭属性对话框。

    单击取消以关闭对话框,并废弃对属性所作的所有更改。

终端和属性

下表描述 Warehouse 节点的终端。

终端 描述
In 接受供节点处理的消息的输入终端。
Failure 如果在计算期间检测到故障,则这就是输入消息传播到的输出终端。如果您已经选择将警告作为错误处理,则即使进程成功完成,节点也会将消息传播到该终端。
Out 输出终端根据数据库语句的执行输出消息。

下表描述该节点的属性;标题为 M 的列表示属性是否是必需的(如果在未定义缺省值时必须输入值,则在属性对话框上以星号作标记),标题为 C 的列表示属性是否是可配置的(将消息流添加到 BAR 文件以部署此文件时可以更改该值)。

下表描述 Warehouse 节点的“基本”属性。

属性 M C 缺省值 描述
数据源   数据库的 ODBC 数据源名,该数据库包含您在与该节点关联的映射中引用的表(由字段映射属性标识)。
字段映射 Warehouse 映射例程(包括要对数据库或消息树执行的语句)的名称。此例程对于此节点类型是唯一的。
事务 自动 节点的事务方式。这可以是自动落实
将警告作为错误处理 已清除 将数据库 SQL 警告作为错误处理。如果您选中该复选框,则执行操作。
在数据库出错时抛出异常 选中 数据库错误导致代理抛出异常。如果您选中该复选框,则执行操作。

下表描述 Warehouse 节点的“描述”属性。

属性 M C 缺省值 描述
简短描述   节点的简要描述。
详细描述   描述消息流中节点用途的文本。
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac04730_