Is there any way to put all writers into one transaction so that it only commits the changes when there is no other work left to be done by the workspace, i.e. performs a rollback on the database on a failure outside of FME?
More details on the matter:
I have a workspace with one input file and multiple database writers that update seperate tables (Oracle non-spatial). I want to be absolutely sure that eitherway ALL features are written, or none at all on failure. How to achieve this?
Because the current situation is as follows:
Workspace fails with database or network error
Some tables are updated (those that came first) and some tables aren't.
We tried using a SQL Executor as one of the first steps, to execute 'set transaction read write', hoping there would be one commit for all database writers or as one of the last steps of the workspace.
This works when the workspace fails with a Terminator transformer, but when the translation failes with a database error instead (for example 'table does not exist' or whatever) then its behaviour is still the same as above, some tables are updated (changes committed) and some not.
Thanks!