ORA-28305: WALLET_LOCATION in sqlnet.ora file for container database is not supported.

Based on the Oracle documentation and bug 17758886 we need to remove the wallet_location from our sqlnet.ora

Checking the Oracle documentation the following is mentioned:

All the PDBs in a CDB have the same database unique name. By placing wallets in the default location, each PDB can have its own identity.

Note that since there is only one sqlnet.ora file for a CDB, the wallet location in sqlnet.ora is not supported for CDBs, because each PDB must have its own wallet. Which means I need to remove the wallet location from my sqlnet.ora

The default location for the cdb$root would be: ORACLE_BASE/admin/db-unique-name/wallet
The default location for a PDB would be: ORACLE_BASE/admin/db-unique-name/pdb-GUID/wallet

 

Based on the above information modified the sqlnet.ora and created a link from the db-unique-name location to the pdb wallet location. Altough each cdb and pdb can has his own wallet, for this environment the multitenant option is not used yet, so their is no need to have seperated wallets.

 

Get the GUID

SYS@TST>select guid,name from v$pdbs;

GUID                             NAME

-------------------------------- -------------------------------------------------
4404164297E84B3FE053D226EF0A8E73 PDB$SEED
440460742463391DE053D226EF0A2A5A PDB1

 
$ mkdir -p /u01/app/oracle/admin/TST_01/440460742463391DE053D226EF0A2A5A/
$ ln -s /u01/app/oracle/admin/TST_01/wallet  
/u01/app/oracle/admin/TST_01/440460742463391DE053D226EF0A2A5A/wallet

 

The additional step performed is to make sure when starting the database, as this is a cluster environment the srvctl set env was executed to make sure also this was using the proper sqlnet.ora file.

 $ srvctl setenv database -db tst_01 -env 
"TNS_ADMIN=/u01/app/oracle/admin/12c/network/admin"

Link to the Oracle doc: http://docs.oracle.com/database/121/REFRN/GUID-42D7474A-331D-4171-8071-513B42F40524.htm#REFRN10251

 

Hope this blog will help you.