We are interested in using application container as we are a multi tenant application where same application schema is required for all the tenants. We are fascinated by this mostly because it enables us to upgrade our tenants at once by upgrading application container which otherwise would be a tedious task. This works fine however we have another requirement where our application needs to do connection pooling between different PDBs.
At CDB level we had implemented this functionality by creating common user at CDB and then password enabled local roles in each PDB. Security aspects were satisfied by having different passwords for a role for different tenants.
Now with application container if I want to achieve connection pooling, I still have to create local role in each PDB so that I can have different passwords. But that defeats the purpose of upgrade as if there is any change in the role I will have to upgrade each PDB. Even if I solve the problem by creating a common role with definition and create local role with password using common role, whenever a new common user is added, I will have to upgrade all PDBs.