2011-01-23 8 views
1

私はプロジェクトで初めてrhino ETLを使用しています。私はその機能に非常に感銘を受けています です。私は2つの データソースに一致する結合操作を使用します。Rhino eTL:孤立した行との結合操作

時々データが失われる可能性があるので、LeftOrphanRowを に上書きしてエラーを「記録」します。ですから、私は例外をスローしますが、 には、 GetAllErrors()を使用してすべての発生した例外がプロセスの終了時に収集されます。

しかし、プロセスが最初の例外で中断されているようです。 これは意図的ですか? OrphanRowsを処理する最良の方法は何でしょうか(特に、処理の最後にすべての操作のすべての孤立した行を要約したい場合)。

答えて

0

問題は、例外を使用して例外ではないイベントを報告しようとしていることがわかります。それは実際には例外ではありません。例外がサードパーティのライブラリを通過することを期待しているときは、その例外に関して特定の方法で動作するようにそのライブラリに頼るべきではありません。

孤立した行のリストをどこかに保存できますか?どのような結合操作でもそれが発生したときはいつでも追加できます。あなたのEtlProcessが終了したら、リストを印刷してください。また、これを達成するためにlog4netの使用を検討することもできます。あるいは単にイベントを起こしても、あなたが他の場所に購読して、適切と思われるものは何でもしてください。

+0

@ greg-fleming私は実際には、これが結合操作の実装におけるエラーであると信じています。私はRhino.ETLのソースコードを見て、他の操作では内部例外リストに例外を追加していることに気付きました。結合操作はわずかに異なっています。私はすでに修正を作成し、それをgithubリポジトリ(https://github.com/ayende/rhino-etl/pull/4)にプッシュしました。 – nyn3x

関連する問題