Mule 1个流中有多个入站数据库终结点

Mule 1个流中有多个入站数据库终结点,mule,Mule,我试图创建一个可能有多个数据库入站端点的流。流程如下: 从表X数据库A中获取X.status(表X列状态)=“new”的行 从表Y数据库B中获取行,其中Y.some_id=X.other_id.X是从步骤(1)检索到的数据行。 在表Z数据库B中插入新行 我意识到可能有一个数据库入站端点。我有没有办法用骡子来完成这个任务 环境:Mule 3.4通过利用范围,您可以在流中声明多个消息源 基本上,您的流程如下所示: <flow ... > <composite-source>

我试图创建一个可能有多个数据库入站端点的流。流程如下:

  • 从表X数据库A中获取X.status(表X列状态)=“new”的行
  • 从表Y数据库B中获取行,其中Y.some_id=X.other_id.X是从步骤(1)检索到的数据行。
  • 在表Z数据库B中插入新行
  • 我意识到可能有一个数据库入站端点。我有没有办法用骡子来完成这个任务


    环境:Mule 3.4

    通过利用
    范围,您可以在流中声明多个消息源

    基本上,您的流程如下所示:

    <flow ... >
    <composite-source>
    <jdbc:inbound-endpoint ... />
    <jdbc:inbound-endpoint ... />
    </composite-source>
    ...
    </flow>
    
    
    ...
    

    应该向您提供有关topc的更多信息,您可以利用
    范围在流中声明多个消息源

    基本上,您的流程如下所示:

    <flow ... >
    <composite-source>
    <jdbc:inbound-endpoint ... />
    <jdbc:inbound-endpoint ... />
    </composite-source>
    ...
    </flow>
    
    
    ...
    

    应向您提供有关topc的更多信息,您的第一个DB呼叫将在入站,第二个DB呼叫将在出站。因为第一个DB调用正在从数据库读取数据,所以它将是入站的,而第二个DB调用正在接收数据,这意味着它将是出站调用

    步骤1)入站数据库调用-从数据库-A读取(表-X,列状态)

    步骤2)结果(有效载荷)很可能是一个或多个地图列表。您可以使用groovy脚本查询各个字段,并设置一个流变量。比如说

    因为有多行进入,所以使用集合拆分器拆分每一行记录很重要

    要查询状态变量:#[flowVars['Var']['status']]。类似地,您可以查询其余字段

    现在您已经准备好了数据库A中的数据集,为数据库B编写一个查询,并使用flow变量(如上所述)查询Y.some_id.eg“where Y.some_id=#[flowVars['Var']['other_id']””

    步骤3)在同一出站连接中,您可以在数据库B(表-Z)中进行插入。这一切之所以成为可能,是因为您使用的是特定的数据库连接器

    有几条建议: 1) 使数据库连接器和查询全局化(在流之前) 2) 使用HTTP出站端点,以便可以控制从浏览器运行的流


    希望这有帮助。

    您的第一个DB呼叫将在入站,第二个将在出站。因为第一个DB调用正在从数据库读取数据,所以它将是入站的,而第二个DB调用正在接收数据,这意味着它将是出站调用

    步骤1)入站数据库调用-从数据库-A读取(表-X,列状态)

    步骤2)结果(有效载荷)很可能是一个或多个地图列表。您可以使用groovy脚本查询各个字段,并设置一个流变量。比如说

    因为有多行进入,所以使用集合拆分器拆分每一行记录很重要

    要查询状态变量:#[flowVars['Var']['status']]。类似地,您可以查询其余字段

    现在您已经准备好了数据库A中的数据集,为数据库B编写一个查询,并使用flow变量(如上所述)查询Y.some_id.eg“where Y.some_id=#[flowVars['Var']['other_id']””

    步骤3)在同一出站连接中,您可以在数据库B(表-Z)中进行插入。这一切之所以成为可能,是因为您使用的是特定的数据库连接器

    有几条建议: 1) 使数据库连接器和查询全局化(在流之前) 2) 使用HTTP出站端点,以便可以控制从浏览器运行的流


    希望这有帮助。

    这是公认的答案。此外,我还在随后的数据库出站端点中使用了“Message Enricher”范围这是公认的答案。此外,我还在后续的数据库出站端点中使用了“Message Enricher”范围