关于 Simplified Database Routing 消息流
如果员工详细信息尚未存在于输入消息的内容中,那么 Simplified Database Routing 消息流将从数据库中检索这些详细信息。
将基于输入消息中提供的员工编号检索这些员工的详细信息。
然后消息流将基于从员工管理器中检索的更多信息路由应答消息。
基于不同的输入消息的内容,将满足不同的路由条件。
根据已满足的路由条件,消息可能是到一个或多个以下输出队列的输出:
- SIMPLERROUTEDB_SNRSTAFF
- SIMPLERROUTEDB_ORDERCLOCK
- SIMPLERROUTEDB_KEYNOTFOUND
- SIMPLERROUTEDB_DEFAULT
下图显示了 Simplified Database Routing 消息流。

下表列出了 Simplified Database Routing 消息流中使用的节点的类型:
| 节点类型 |
节点名
|
| MQInput |
MQInput |
| Route |
Route |
| DatabaseRetrieve |
DatabaseRetrieve
|
| DatabaseRoute |
DatabaseRoute |
| MQOutput |
FailureQ、KeyNotFoundQ、SeniorStaffQ、OrderClockQ、DefaultQ |
| Trace |
Trace |
有关更多信息,请参阅 IBM Integration Bus 文档中的内置节点。
Simplified Database Routing 消息流将执行以下操作:
- MQInput 节点从 SIMPLERROUTEDB_IN 队列中获取 XML 输入消息。
该消息将传递到 Route 节点。
- Route 节点将检查该输入消息的内容以查看员工的“工作部门”字段是否可用。
如果该字段可用,那么该消息将通过 Match 终端路由到 DatabaseRoute 节点。
如果该字段不可用,那么必须检索员工详细信息并通过 Default 终端将消息路由到 DatabaseRetrieve 节点。
- DatabaseRetrieve 节点查询数据库中的 EMPLOYEE 表以检索员工详细信息。
消息中的员工编号是用于数据库查找的关键字。
在 DatabaseRetrieve 节点中设置的属性指定了要从 EMPLOYEE 表的数据库查询中检索的值,以及将这些值插入输出消息中的位置。
- 如果员工编号与数据库中的相应项匹配,那么将使用该数据库中的值填充消息。然后将该消息传递到 DatabaseRoute 节点。
- 如果员工编号与数据库中的值不匹配,那么原始输入消息将通过 keyNotFound 终端传递到 KeyNotFoundQ 节点。
- DatabaseRoute 节点执行 JOIN 操作以将员工与其经理的详细信息进行比较。
JOIN 操作具有以下步骤:
- 在数据库查询中使用输入消息中的工作部门值来在 DEPARTMENT 表中查找部门经理。
- 检索经理编号列值 (DEPARTMENT.MGRNUM) 并用于链接到 EMPLOYEE 表中以查找特定的员工记录。
因此,DEPARTMENT.MGRNUM 将链接到 EMPLOYEE.EMPNUM。
查找到的员工记录引用该员工的经理的雇佣记录。
- 为该经理返回该节点的数据库查询中指定的值。
- 然后处理 DatabaseRoute 节点中的过滤表达式。该表达式为 true 或 false。过滤表达式可通过以下方式进行处理:
- 如果员工的工作部门值与 DEPARTMENT 表中的记录不匹配,那么该消息将通过 keyNotFound 终端传递到 KeyNotFoundQ 节点。
- 如果员工的年龄大于其经理的年龄且其经理的姓氏为“KWAN”,那么 DatabaseRoute 节点将通过 OlderThanMe 终端将该输入消息传递到 SeniorStaffQ 节点。
然后,对下一个过滤表达式进行求值。
- 如果输入消息中的员工的工龄大于 10,那么 DatabaseRoute 节点将通过 TenYearsService 终端将该输入消息传递到 OrderClockQ 节点。
- 如果以上两个过滤表达式均不为 true,那么 DatabaseRoute 节点将通过 Default 终端将该输入消息传递到 DefaultQ 节点。
- 如果在任何节点中发生处理失败,那么该输入消息将通过节点中的 Failure 终端传递到 Trace 节点以进行错误处理。
Simplified Database Routing 消息流样本中使用的 Database 节点会读取数据库中的信息,但是不对该数据库中的数据进行任何更新。
返回“关于 Simplified Database Routing 样本”