在mule 3.7中将jdbc传输迁移到数据库连接器

时间:2015-10-21 09:02:07

标签: mule

目前我们正在使用已弃用的jdbc连接器及其相应的jdbc入站端点来轮询数据库中的数据。

我们正在使用.ack(确认(ACK)语句功能)来防止处理重复记录。

但是我似乎没有使用新的数据库连接器找到相同的功能。我们正在使用Mule社区版,因此我们无法使用批处理组件。

是否有可能使用数据库连接器(与轮询组件结合使用)具有相同的功能。或者我们是否必须手动确认我们的记录?

<jdbc:connector name="dbPollingConnector" dataSource-ref="dataSource" queryTimeout="1000" pollingFrequency="1000">
        <receiver-threading-profile maxThreadsActive="1" />
        <reconnect-forever frequency="60000"></reconnect-forever>
        <jdbc:query key="newDataGrouped"   value="select * from table where processed = 0"></jdbc:query>
        <jdbc:query key="newDataGrouped.ack"  value="update table set processed = current_timestamp"></jdbc:query>
</jdbc:connector>

<flow name="flowName">

      <jdbc:inbound-endpoint name="groupedInboundComponent" responseTimeout="1000" queryTimeout="100"
                pollingFrequency="1000" connector-ref="dbPollingConnector" queryKey="newDataGrouped" exchange-pattern="request-response">
      </jdbc:inbound-endpoint>

      <!--... rest of the flow ... -->

</flow>

1 个答案:

答案 0 :(得分:0)

您可以使用Polling for Updates using Watermarks

它的工作方式与.ack略有相似,但不修改数据库中的物理数据。我认为在当前查询中只需要稍作修改,例如:select * from table where id > #[flowVars['lastModifiedID']]