Database Version:- Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Apex Version:- 5.1.2.00.09 (Due to be upgraded to 19.1 in a couple of weeks)
ORDS Version:- 2.0.10.289.08.09 (Due to be upgraded to 19.2 in a couple of weeks)
Hello,
We are currently looking at using Edition Based Redefinition (EBR) within our organization and while I understand the database side of the implementation, I am struggling to figure out how this works with Apex.I searched the forum and could only find one posting:-
Apex 5.0 + Edition Based Redefinition ?
Unfortunately no one responded to the question.
I had a look around the internet and found these 2 interesting presentations:-
https://www.doag.org/formes/pubfiles/9053218/2017-APEX-Bryn_Llewellyn-Upgrade_your_APEX_app_with_zero_downtime_by_using_…
https://www.slideshare.net/roelhartman/tales-from-a-parallel-universe-using-oracle-11gr2s-edition-based-redefinition-in-…
In Bryn's presentation, he mentions that we have a redirection within ORDS to point to the current application and when the new edition is ready we modify it to point to the new application. My question here is that we would have 2 applications within Apex with different application ids? So for example, our current application has an id of 500 and when we change over the edition within the DB would we have to have another application say application 501 and modify ORDS redirect to point to this? If my understanding is correct, then what happens with the sessions that are currently using application 500, will they get re-directed to application 501? One other thing I am unsure about is private interactive reports, when switching over to the new edition/application we would have to copy the data for private report settings from application 500 to 501 because when looking at the data in wwv_flow_worksheet_rpts we are storing the flow id.
If I understand Roel's presentation, then he is using session management to achieve this and also this is being done in an EPG environment and not using ORDS.
I was also looking at the documentation and I see we have a get and set edition calls within the apex_util package:-
https://docs.oracle.com/database/apex-5.1/AEAPI/SET_EDITION-Procedure.htm#AEAPI511
My question here is, what does this do? Can we set this at Post-Authentication so that all SQL parsed within the application be using that edition? This leads me to my next question, in our current edition we have a procedure that is excepting only 2 parameters but in the next edition the procedure is looking for 3 parameters. Surely we would have to deploy the application again then so that we would be passing 3 parameters to the procedure?
Maybe I am not seeing the wood from the trees but I would like to know if anybody else is using EBR alongside Apex and if so how did you set it up?
Thanks,
Paul.