Subject Replication (more)

Some customers already have their database server, say Oracle or
SQL/Server, and do not want to change. In such a case, if we want to
keep our application based on IB, the idea would be to replicate all
changes made to IB DB into the external DB.

The solutions I can imagine are:

1) Write triggers (for each table we want to replicate) which call an
UDF to update Oracle table (But how to maintain the connection with
the Oracle DB between UDF calls?)

2) Make trigger log all data changes in a DATA_LOG table and raise an
event. Then write another application (service?), connected to both
IB and Oracle DB, listening to IB events, and writing all changes in
Oracle DB as indicated in DATA_LOG table.
( gives an
example of master/detail table for storing data changes)

-What do you think about these 2 mechanisms?
-Do you see another solution?
-What about stability (particularly when network connection is not
active between the 2 DB servers)?