0 Replies Latest reply on Jan 26, 2020 9:07 AM by 391a70ca-18ca-444e-b876-970f24f49e69

    Application Container Patching

    391a70ca-18ca-444e-b876-970f24f49e69

      Hi,

      I've this scenario:

      An application root with the CRM_APP application created and three apps PDBs.

       

      The apps contains several objects : tables, indexes , sequences.

       

      And I've this table with sharing option to data:

      CREATE TABLE "CRM_OWNER"."D_DATA" SHARING=DATA

         (    "DEPTNO" NUMBER(2,0),

              "DNAME" VARCHAR2(14),

              "LOC" VARCHAR2(13)

               PRIMARY KEY ("DEPTNO")

       

      This table is part of apps version 1 and the apps PDBs are syncronized to v1.

       

      Now, I patch with this:

      ALTER PLUGGABLE DATABASE APPLICATION crm_app BEGIN PATCH 101  MINIMUM VERSION '1.0' ;

      alter  TABLE crm_owner.D_metadata add conta number;

      ALTER PLUGGABLE DATABASE APPLICATION crm_app END PATCH 101 ;

       

      And  applying this patch to a one PDB :

      ALTER PLUGGABLE DATABASE APPLICATION crm_app sync to patch 101;

       

      This PDB see the change:

      SQL> desc  crm_owner.D_data

      Name                                            Null?    Type

      ----------------------------------------------- -------- --------------------------------

      DEPTNO                                          NOT NULL NUMBER(2)

      DNAME                                                    VARCHAR2(14)

      LOC                                                      VARCHAR2(13)

      CONTA                                                    NUMBER

       

      However, from other PDB don't see the change:

       

      SQL> desc crm_owner.D_data;

      Name                                            Null?    Type

      ----------------------------------------------- -------- --------------------------------

      DEPTNO                                          NOT NULL NUMBER(2)

      DNAME                                                    VARCHAR2(14)

      LOC                                                      VARCHAR2(13)

       

      Because this table has the SHARING=DATA, if I query from any apps PDB, I see the apps root data new inserted o modified without any sync operation.

       

      My question or doubt, is how the system is capable of not seeing the structural and data level changes in the new column added in the application root. Since when generating a patch in the application, an application root clone is not created, as the Oracle Multitenant documentation indicates.

      Is there another versioning mechanism that is done at the patch level?

       

      The doc say (chapter 17-page 15)

       

      Note:

      Unlike an application upgrade, a patch does not create an application root

      clone. If an application PDB is not synchronized after a patch, then queries

      are directed to the application root, which has already been patched

       

      Thanks

      Arturo