我有一个主转换,使用Pentaho Kettle中的单个穿线器步骤调用几个子转换。子转换写入Oracle数据库。
主要转变如下:
Data Frame --> Single threader 1 --> Single threader 1 --> Single threader 3
单线程调用的子转换如下所示:
In --> A bunch of modifications and checks --> Write to DB
|
v
Out
out步骤直接连接到in步骤的原因是我想要返回未修改的行,但是我需要修改它以获取要插入到DB中的正确数据。每个子转换更新一个或两个表。
所有转换中的所有步骤都使用相同的数据库连接,即文件之间的共享资源。在所有转换中都会选中“生成转换数据库事务”复选框。
我的问题是:当我运行主变换时,即使没有错误消息,也不会更新许多表。转换完成后,这些表格也会保持锁定状态,并保持锁定直到我退出Spoon。受此影响的表可能会不时发生变化 - 有时会有很多,有时只有一个,有时甚至没有。我无法检测到任何模式。
我做错了吗?我该怎么做才能防止这种情况发生?