0

您好我正在尝试从一个表中获取记录并插入到另一个表中(MS SQL)当我获取它作为键值并使用批处理提交大小为 1000 但当 2000 条记录出现时只有两行插入桌子。我尝试使用批量模式,但批量模式要求动态查询下面是我的查询 INSERT INTO Sample VALUES( #[payload.Index], #[payload.Name])和有效负载 {Index=1,Name=XX},{Index=2,Name=XX},{Index=3,Name=XX}等请帮助我如何在 Mule ESB 中使用批量模式以及我可以为此编写哪些动态查询。批处理只是发布第一个行,所以我认为在批处理中使用批量将解决我的问题。提前谢谢!!!

4

1 回答 1

4

您可以将骡子bulk mode = "true"parameterized query.

<db:insert config-ref="Database_Configuration" bulkMode="true" doc:name="Database">
            <db:parameterized-query>
                <![CDATA[INSERT INTO Sample(column1, column2) VALUES( #[payload.Index], #[payload.Name])
            ]]></db:parameterized-query>
</db:insert>

从 mule中查看此批量模式链接

启用通过一个查询提交数据集合,而不是为集合中的每个参数集执行一个查询。启用批量模式可提高应用程序的性能,因为它减少了单个查询执行的次数。批量模式需要至少一个参数的参数化查询。

只要确保你payloadCollection类型进入bulk mode

在您的log4j2.xml中,在 mode 中添加数据库模块的日志记录,debug以查看 mule 传递到数据库的实际查询。非常适合调试。

 <AsyncLogger name="org.mule.module.db" level="DEBUG"/>

请注意,bulk mode不适用于batch-processing. 两者中的任何一个都可以,但是如果您的意图只是插入数据,bulk-mode则比批处理更有效。

于 2016-02-23T19:14:27.240 回答