Thursday, February 11, 2016

12.2 -- Online Patching -- Forward Cross Edition Triggers for "initial loading of data from run to patch edition"

We know that EBS Forward Cross edition triggers are used for replication the changes  that are done in the run edition, to the patch edition during the online patching cycle.
These triggers are used in dml operations and by the nature of being trigger, they are fired when a new insert or update take place.
So what about the data stored in the table before creating these trigger? In other words; how is the initial loading of data is done.
There are 2 answer for these questions.
So if the patch is designed to update the seed data, then the seed data is copied from run edition to
patch edition using insert - select method.
You can see this if you execute adop phase=prepare and look at the adzdshowlog.out
"ad.plsql.ad_zd_seed.create_sync EVENT Copy Seed Data using insert-select: SOMETABLE"

But if , the patch is designed to update an application table definition, then the data in the application table is copied from run edition to patch edition by using a fake update operation that trigger the
Forward Cross edition trigger, which has the transformation logic.
It is actually exactly the same as I have explained in the earlier blog post.
http://ermanarslan.blogspot.com.tr/2015/07/ebs-122-and-ebr-lets-make-demo.html
An example for the fake update is also there.. "update olderman set dummy=dummy;"

Why insert-select for copying/initially loading the seed data from run to patch edition, and forward cross edition triggers for copying/initally loading the application table data from run to patch edition?
The answer is simple, patches update the seed data itself, so no transformation is needed, thus a simple insert-select is enough for the initial load.
On the other hand, patches dont change the data in the application tables, they change the the application table structure itself(a change in column type for example), so transformation is needed and forward cross edition triggers which have the transformation logic for that patch are our friends and that's why they are used for initial loading of data from run to patch edition during  an online patching session.

No comments :

Post a Comment