获取mule批量提交中已提交记录的数量

时间:2017-07-26 23:05:21

标签: mule mule-studio

我正在使用批处理来更新DB中的记录。批量提交大小为100.我的批处理流程如下所示

  <batch:process-records>
           <batch:step name="Batch_Step" >
                <batch:commit doc:name="Batch Commit" size="100">
                    <db:update config-ref="DB_Configuration"bulkMode="true"  doc:name="Update" target="#[flowVars.count]">
                        <db:parameterized-query><![CDATA[update student set
                         column1=value1,
                         column2=value2 where id > 2000;] > </db:parameterized-query></db:update></batch:commit> </batch:step> </batch:process-records>

如何获得每次批量提交中更新的记录数?我原以为目标中的flowVars.count会有这个数。但是,当我打印我没有看到计数。如何获得成功提交的记录数?

2 个答案:

答案 0 :(得分:0)

完成状态会告诉您overall status成功的失败记录。

批处理有自己的批处理流变量名为<batch:record-variable-transformer doc:name="Record Variable"/>的变量普通flowVars在批处理内不起作用。

如果要单独处理故障记录,请再使用一个批处理步骤并标记accept-policy="ONLY_FAILURES",因此无论批处理步骤中的记录失败,“仅允许成功”都将转到“处理故障”流程

     <batch:job name="sample_projectBatch" max-failed-records="-1">
    <batch:process-records>
        <batch:step name="Allow only Success " accept-policy="NO_FAILURES">
            <batch:record-variable-transformer doc:name="Record Variable"/>
        </batch:step>
        <batch:step name="handle failure" accept-policy="ONLY_FAILURES">
            <logger level="INFO" doc:name="Logger"/>
         <!-- logic to handle the failure -->
        </batch:step>
    </batch:process-records>
</batch:job>

答案 1 :(得分:0)

您可以在查询中解释更多“where id&gt; 2000”条件吗? “id”或“2000”是否来自您的有效载荷?

如果没有,那么我不明白查询是如何反复覆盖相同的db记录的。