2014-05-15 50 views
1

截至目前,当我查询查询数据库,它将指定duration.Problem期间我拿的多条记录,这些多个记录会作为单个消息推入队列中。如何将记录集中的每条记录作为单独消息推送?解析多个记录

回答

2

正如你所解释的JDBC端点获取记录的集合,并把他们作为一个单一的消息队列。解决方案有两种选择。

  1. 使用骡的对于-每个消息处理器。这有助于迭代集合对象并将每个项目处理为一条消息。
  2. 使用Mule的收集分离器遍历记录集合。

解选项1看起来像如下所示的图像中

JDBC For Each JMS flow

对于该流动loks这样的代码。

<flow name="JDBC-For-Each-JMS-Flow" > 
    <jdbc-ee:inbound-endpoint queryKey="SelectAll" mimeType="text/javascript" queryTimeout="500000" pollingFrequency="1000" doc:name="Database">   
     <jdbc-ee:query key="SelectAll" value="select * from users"/>    
    </jdbc-ee:inbound-endpoint> 
    <foreach doc:name="For Each" collection="#[payload]" > 
     <jms:outbound-endpoint doc:name="JMS"/> 
    </foreach> 
    <catch-exception-strategy doc:name="Catch Exception Strategy"/> 
</flow> 

注意:这是一个示例流程。

希望这会有所帮助。

+0

是的,这工作。谢谢! – Gforz