运行 Simplified Database Routing 样本

您可以运行 Simplified Database Routing 样本来演示以下任务:

对于每项任务,您将一条消息放入同一个 WebSphere MQ 队列 SIMPLERROUTEDB_IN 中。SimplifiedDBRouting 消息流从该队列获取消息并处理该消息。以下指示信息描述了如何将提供的自定义 XML 消息放入 Simplified Database Routing 样本消息流中,以及在每种情况下您可以期望从消息流中接收到的输出。因为这些消息不会更新 SROUTEDB 数据库,因此您可以将任意此四类消息以任意顺序发送到消息流中。

您可以查看样本数据库的内容。对于 DB2 数据库,请使用 DB2 提供的工具;例如,DB2 控制中心。

运行样本时,您可能会在 IBM Integration Toolkit 的“问题”视图中看到类似于“未找到 XMLNSC 模式元素”以及“强制表达式不是有效的语法”的错误或警告消息。这些警告或错误指示消息流中的某些节点的属性中的 XPath 表达式不符合 IBM Integration Toolkit 中设置为首选项的 XPath 验证要求。这些消息不会影响运行时样本的行为。但是,如果设置了 XPath 验证首选项从而使错误消息显示在“问题”视图中,那么您无法将消息流添加到代理归档文件中,或重新构建已包含该消息流的代理归档文件。您还可以在“消息流”编辑器中查看该消息流。要将 XPath 验证首选项设置为较宽松,并显示警告而非错误:

  1. 单击“窗口 > 首选项”,展开“应用程序开发”。
  2. 展开 XPath,单击“验证”。
  3. 从每个验证选项的菜单中选择“警告”。
  4. 单击“确定”。
  5. 更改首选项后保存消息流从而显示警告而非错误。保存消息流后,将重新验证该消息流。

如果运行样本时消息显示在 SIMPLERROUTEDB_FAILURE 队列中,请检查 Integration 节点注册表中为 JDBCProvider 别名 SIMPLERROUTEDB 设置的缺省 DBMS JDBC 提供者设置是否适合于您的环境。有关更多信息,请参阅为 DB2 数据库创建 JDBC 提供者条目为 Oracle 数据库创建 JDBC 提供者条目。 如果运行此样本时遇到任何其他问题,请参阅 IBM Integration Bus 文档中的解决运行样本时的问题

使用 usedbretrievenode.mbtest 中的测试消息运行 SimplifiedDBRouting 消息流

SimplifiedDBRouting 消息流检索输入消息的 EmpNumber(员工编号)字段中列出的员工的员工详细信息。消息流将修改消息,最后将该消息的内容与第二个数据库查询中该员工的经理的详细信息进行比较。

要运行 SimplifiedDBRouting 消息流:

  1. 在“应用程序开发”视图中,展开“简化数据库路由消息流”项目,然后双击 usedbretrievenode.mbtest 文件以在测试客户机中打开该文件。
  2. 在测试客户机中,单击“入队”。
  3. 单击“发送消息”。将输入消息放入 SIMPLERROUTEDB_IN 队列中。
  4. 在测试客户机中,单击第一个“出队”。
  5. 单击“获取消息”以从 SIMPLERROUTEDB_SNRSTAFF 队列中读取消息。 此应答消息确认了必须将 David Brown(员工:000010)记录并识别为公司内的年长员工。以下示例显示了应答消息的格式:
    <EmpRecord>
          	<EmpNumber>000010</EmpNumber>
          	<FirstName>DAVID</FirstName>
          	<LastName>BROWN</LastName>
          	<YrsInService>10</YrsInService>
          	<AgeInYears>54</AgeInYears>
          	<WorkDept>D01</WorkDept>
    </EmpRecord>
  6. 在测试客户机中,单击第二个“出队”。
  7. 单击“获取消息”以从 SIMPLERROUTEDB_ORDERCLOCK 队列中读取消息。 此应答消息确认了 David Brown(员工:000010)的经理必须赠送其一个时钟以褒奖其为公司工作了十年。以下示例显示了应答消息的格式:
    <EmpRecord>
          	<EmpNumber>000010</EmpNumber>
          	<FirstName>DAVID</FirstName>
          	<LastName>BROWN</LastName>
          	<YrsInService>10</YrsInService>
          	<AgeInYears>54</AgeInYears>
          	<WorkDept>D01</WorkDept>
    </EmpRecord>

使用 usedbretrievenode_nofiltermatch.mbtest 中的测试消息运行 SimplifiedDBRouting 消息流

SimplifiedDBRouting 消息流检索输入消息的 EmpNumber(员工编号)字段中列出的员工的员工详细信息。消息流将修改消息,最后将该消息的内容与第二个数据库查询中该员工的经理的详细信息进行比较。

要运行 SimplifiedDBRouting 消息流:

  1. 在“应用程序开发”视图中,展开“简化数据库路由消息流”项目,然后双击 usedbretrievenode_nofiltermatch.mbtest 文件以在测试客户机中打开该文件。
  2. 在测试客户机中,单击“入队”。
  3. 单击“发送消息”。将输入消息放入 SIMPLERROUTEDB_IN 队列中。
  4. 在测试客户机中,单击“出队”。
  5. 单击“获取消息”以从 SIMPLERROUTEDB_DEFAULT 队列中读取消息。 此应答消息确认了 Sally Kwan 女士(员工:000020)既不满足 DatabaseRoute 节点过滤表达式(因为她尚未工作十年)也不能比自己年长(因为她也是自己工作部门的经理)。因此,修改的输入消息将路由到缺省队列中。 以下示例显示了应答消息的格式:
    <EmpRecord>
          	<EmpNumber>000020</EmpNumber>
          	<FirstName>SALLY</FirstName>
          	<LastName>KWAN</LastName>
          	<YrsInService>9</YrsInService>
          	<AgeInYears>27</AgeInYears>
          	<WorkDept>D00</WorkDept>
    </EmpRecord>

使用 bypassdbretrievenode.mbtest 中的测试消息运行 SimplifiedDBRouting 消息流

SimplifiedDBRouting 消息流将输入消息中给出的员工详细信息与数据库查找所要求的员工经理的详细信息进行对比。

要运行 SimplifiedDBRouting 消息流:

  1. 在“应用程序开发”视图中,展开“Simplified Database Routing 消息流”项目,然后双击 bypassdbretrievenode.mbtest 文件以在测试客户机中打开该文件。
  2. 在测试客户机中,单击“入队”。
  3. 单击“发送消息”。将输入消息放入 SIMPLERROUTEDB_IN 队列中。
  4. 在测试客户机中,单击第一个“出队”。
  5. 单击“获取消息”以从 SIMPLERROUTEDB_SNRSTAFF 队列中读取消息。 此应答消息确认了必须将 David Brown(员工:000010)记录并识别为公司内的年长员工。以下示例显示了应答消息的格式:
    <EmpRecord>
          	<EmpNumber>000010</EmpNumber>
          	<FirstName>DAVID</FirstName>
          	<LastName>BROWN</LastName>
          	<YrsInService>10</YrsInService>
          	<AgeInYears>54</AgeInYears>
          	<WorkDept>D01</WorkDept>
    </EmpRecord>
  6. 在测试客户机中,单击第二个“出队”。
  7. 单击“获取消息”以从 SIMPLERROUTEDB_ORDERCLOCK 队列中读取消息。 此应答消息确认了 David Brown(员工:000010)的经理必须赠送其一个时钟以褒奖其为公司工作了十年。以下示例显示了应答消息的格式:
    <EmpRecord>
          	<EmpNumber>000010</EmpNumber>
          	<FirstName>DAVID</FirstName>
          	<LastName>BROWN</LastName>
          	<YrsInService>10</YrsInService>
          	<AgeInYears>54</AgeInYears>
          	<WorkDept>D01</WorkDept>
    </EmpRecord>

使用 bypassdbretrievenode_keynotfound.mbtest 中的测试消息运行 SimplifiedDBRouting 消息流

SimplifiedDBRouting 消息流将输入消息中给出的员工详细信息与数据库查找所要求的员工经理的详细信息进行对比。

要运行 SimplifiedDBRouting 消息流:

  1. 在“应用程序开发”视图中,展开“简化数据库路由消息流”项目,然后双击 bypassdbretrievenode_keynotfound.mbtest 文件以在测试客户机中打开该文件。
  2. 在测试客户机中,单击“入队”。
  3. 单击“发送消息”。将输入消息放入 SIMPLERROUTEDB_IN 队列中。
  4. 在测试客户机中,单击“出队”。
  5. 单击“获取消息”以从 SIMPLERROUTEDB_KEYNOTFOUND 队列中读取消息。 此应答消息确认了必须将 David Brown(员工:000010)具有无效的工作部门值。 因此,未修改的输入消息将路由到 keyNotFound 队列中。以下示例显示了应答消息的格式:
    <EmpRecord>
          	<EmpNumber>000010</EmpNumber>
          	<FirstName>DAVID</FirstName>
          	<LastName>BROWN</LastName>
          	<YrsInService>10</YrsInService>
          	<AgeInYears>54</AgeInYears>
          	<WorkDept>E00</WorkDept>
    </EmpRecord>

返回到样本主页