We are writing to discuss an operational challenge that we are currently facing with the integration of Oracle Integration Cloud (OIC) and Oracle Autonomous Database within our organization. Our setup utilizes OIC as the primary integration layer, in conjunction with the Autonomous Database for staging data, performing validations, and executing other data derivation tasks.
Our infrastructure includes multiple OIC environments, each configured to connect to the same Autonomous Database but utilizing distinct database schemas. These schemas primarily contain custom tables and packages essential for enforcing our business rules. During the integration process, particularly when invoking subroutines, it is necessary to specify the database name along with the package or procedure name, as detailed in the Oracle documentation (
https://docs.oracle.com/en/cloud/paas/integration-cloud/atp-adapter/invoke-stored-procedure-page.html ).
We encounter significant challenges when migrating integrations between different OIC environments due to the requirement of manually updating the schema name in each database activity to match the target environment's schema. This process is not only time-consuming but also prone to errors, impacting our efficiency and operational continuity.
In previous discussions with the Oracle Support team, the suggestion was made to utilize separate databases with identical schema names to circumvent this issue. However, due to resource constraints, expanding beyond our current setup of one database for production and another for non-production environments is not feasible.
Given these circumstances, we are reaching out to inquire if there might be an alternative solution or workaround that could facilitate a more streamlined migration process between OIC environments without the need for manual updates. Any suggestions or guidance you could provide would be greatly appreciated
Is it conceivable to have a wrapper schema to look after this ?
eg
Current
OIC environment 1 calls SCHEMA1.MY_PROC
OIC environment 2 calls SCHEMA2.MY_PROC
We create a new schema OIC_ROOT with execution privs on all relevant schemas where we would then have
procedure OIC_ROOT.MY_PROC is
begin
if "environment" = OIC1 then
SCHEMA1.MY_PROC;
elsif "environment" = OIC2 then
SCHEMA2.MY_PROC;
...
end;
Ideally the determination of environment could be done without external parameters needed to be passed, eg, examining sys_context
In that way, whilst you have an extra layer of code in the database to look after, you never need to touch the OIC config because it always calls OIC_ROOT in all cases.
Others welcome to add their thoughts/ideas.