Mule JDBC组合结果集

Mule JDBC组合结果集,mule,Mule,我有一个JDBC连接器作为入站端点,在数据库中获取正确的结果集。 我注意到每一行都作为一条新消息返回。 我的问题:如何将所有行合并成一条消息?聚合器是唯一的选项吗? 使用Mule版本3.3.1 CE 要接收包含所有行的单个消息,请执行以下操作之一: 使用在JDBC入站端点中启动事务,并在JDBC端点上设置transactionPerMessage=“false” 或 在流的开头轮询JDBC出站端点: <poll frequency="${polling.frequency}"&g

我有一个JDBC连接器作为入站端点,在数据库中获取正确的结果集。
我注意到每一行都作为一条新消息返回。
我的问题:如何将所有行合并成一条消息?聚合器是唯一的选项吗?
使用Mule版本3.3.1 CE



要接收包含所有行的单个消息,请执行以下操作之一:

  • 使用
    在JDBC入站端点中启动事务,并在JDBC端点上设置
    transactionPerMessage=“false”

  • 在流的开头轮询JDBC出站端点:

    <poll frequency="${polling.frequency}">
        <jdbc:outbound-endpoint queryKey="..."
            exchange-pattern="request-response" queryTimeout="30000" />
    </poll>
    
    
    

  • 在这两种情况下,您都会收到一条带有
    List
    payload的消息。

    提供您的mule配置文件。您可以从我的流程中看到,我确实设置了“transactionPerMessage=“false”,但是我会为每一行获取一个CaseInsensitiveHashMap,而不是一个列表。请重新阅读我的答案:您还需要在JDBC入站端点中启动一个事务,此设置才能生效。抱歉,我缺少一些内容。当你说“要么”和“在这两种情况下”时,每一个项目都是作为一个解决方案单独工作的,还是两者都需要添加?另外,如果我已经在jdbc连接器中设置了轮询频率,那么为什么需要轮询呢?谢谢。是的,我说的“要么”是指你可以使用任何一种策略来实现你的目标。“在这两种情况下”,我的意思是,无论你遵循第一种或第二种选择,都会达到上述结果。我会把子弹换成数字,看能不能让你看得更清楚。另外,在第二种情况下需要轮询器,因为它是出站端点而不是入站端点。感谢您的回复。我正在尝试你提出的第一个解决方案。我设定
    <poll frequency="${polling.frequency}">
        <jdbc:outbound-endpoint queryKey="..."
            exchange-pattern="request-response" queryTimeout="30000" />
    </poll>