I have a java application, that uses Oracle Wallet to store db credentials, when making a db connection.
the app is using the Oracle 12c jdbc thin driver, and can successfully connect when using a wallet created with the oracle 11 client, mkstore utility. But if I create a wallet, with same credentials, using Oracle 12c mkstore utility, the app gets folliowing error. All other configuration is same, e.g. system properties with location of tns admin files, and the wallet location. I've used same wallet to connect to the db using sqplus, so I know the wallet is valid. Seems like the jdbc driver has problems opening the wallet. I've noticed with the 12c version of mkstore, there are .lck file that get created, e.g. cwallet.sso.lck. I've tried deleting those, but always get same error. I've also seen this question asked in a few places, but have never seen an answer.
Caused by: java.sql.SQLException: encountered a problem with the Secret Store. Check the wallet location for the presence of an open wallet (cwallet.sso) and ensure that this wallet contains the correct credentials using the mkstore utility: java.io.IOException: PKI-02002: Unable to open the wallet. Check password.
| at oracle.jdbc.driver.PhysicalConnection.getSecretStoreCredentials(PhysicalConnection.java:1466) |
| at oracle.jdbc.driver.PhysicalConnection.parseUrl(PhysicalConnection.java:1214) |
| at oracle.jdbc.driver.PhysicalConnection.readConnectionProperties(PhysicalConnection.java:965) |
| at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:624) |
| at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:398) |
| at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:31) |
| at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:566) |