0

感谢您的帮助。这是我试图在 Mulesoft 中重新创建的场景。

一个表中有 1,500,000 条记录。这是我们当前使用的流程。

开始交易。

从表中删除所有记录。

从平面文件重新加载表。

提交事务。

最后我们需要文件处于良好状态,从而使用事务。如果出现任何故障,表中的数据将回滚到初始有效状态。

通过使用 < 10 分钟的 Batch 元素,我能够获得我们需要的速度,但似乎整个批处理流程不支持事务。

有什么想法可以让它在 Mulesoft 中工作吗?

再次感谢。

4

3 回答 3

0

请参考这篇文章https://dzone.com/articles/passing-java-arrays-in-oracle-stored-procedure-fro

从临时表轮询记录。您可以使用任意数量的记录构造数组。100K 大小总共只涉及 15 次往返。

要确定错误记录,您可以在错误表中插入记录,但这必须在数据库过程中实现。

于 2018-03-10T05:53:29.500 回答
0

为此,您可以尝试以下操作:

  • 使用 XA 事务(因为将使用多个连接器,无论是否使用相同的传输)
  • 在事务中登记自定义 Java 代码中使用的资源。

这也可以在相同的传输中应用(例如,Mule 配置上的 JDBC 和 Java 组件上的 JDBC),因此它不限于 PoC 中演示的案例,它仅作为参考提供。

于 2017-11-15T22:25:01.827 回答
0

工作流程略有不同,但如何:

  • 从平面文件加载临时表
  • 如果成功删除原始表
  • 将临时表重命名为原始表名

您可以保留 Mule 批处理工作流程来加载临时表而忘记回滚。

于 2017-11-08T02:25:32.660 回答