Question

Single edits Oracle trigger to update a feature class using FME server

  • 23 April 2018
  • 1 reply
  • 9 views

Badge

Hello,

Any example of synchronizing the data between Oracle non GIS and GIS systems using FME server.

I have found an example but in my case the workflow is little different (link below). I just want to setup a trigger on Non GIS oracle database to create/update/delete the features in Oracle GIS database using FME server (SOA).

https://knowledge.safe.com/articles/1098/single-edits-oracle-push-data-from-the-database-to.html

Appreciate if you could throw some pointers.

Thanks in Advance!


1 reply

Badge +2

There are two parts to the problem really:

  • push or pull from the source database - how to trigger the updates from the Oracle to the GIS
  • how to identify the update records

Push or poll; The article you've referenced, covers a push approach, which works if you want real-time synchronization. However, this approach requires adding triggers to your source database which is pretty intrusive and might not be acceptable to the database owner, particularly if there are several tables involved.

The other approach is to use a poll (or pull) approach. In this case you schedule an FME Server task to poll the database for changes. This can be done in 'near' real time (i.e every few minutes) or some other time interval. This requires a history table or some other update time stamp on your database tables so you can identify which records changed since the last poll.

This presentation from the 2017 FME World Tour covers the concepts: Ultimate Real Time: Monitor Anything, Update Anything

Identifying the updates: This requires a history table or change date on the source database so you can identify which records are inserts, updates or deletes. Once that is understood, you can use the fme_db_operation format attribute to carry out the appropriate incremental update.

The solution will depend on whether or not you can implement triggers in your database and how changes are tracked in your source database.

Reply