ORA-28040: No matching authentication protocol (Using JDBC Connection to 12c Database )

APPLIES TO:

JDBC - Version 9.0.1.0 to 9.2.0.8 [Release 9.0.1 to 9.2]
Information in this document applies to any platform.

SYMPTOMS

On : 9i version, Thin JDBC driver

After upgrading a database from 11.2.0.3 to 12.1.0.1, JDBC connections fail with ORA-28040: No matching authentication protocol.


ERROR
-----------------------
ORA-28040 No matching authentication protocol 


STEPS
-----------------------
The issue can be reproduced at will with the following steps:
1. Upgrade the database from 11.2.0.3 to 12.1.0.1.
2. Try to establish a connection from the application to the upgraded database using JDBC 9i.

CAUSE

The issue is caused by unsupported combination of JDBC/JDK/Database product components.
 
Based on the error stack obtained:

java.sql.SQLException: ORA-28040: No matching authentication protocol

  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
  at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
  at oracle.jdbc.ttc7.O3log.receive1st(O3log.java:428)
  at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:248)
  at oracle.jdbc.driver.OracleConnection.(OracleConnection.java:246)
  at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:365) 

the version of the JDBC driver being used is 9i. This is confirmed based on the fact that the package oracle.jdbc.ttc7 only exists in JDBC 9i and not in later driver releases such as JDBC 10g, 11g or 12c.

9i clients are not supported with Oracle Database 12.

This is reported in 
Document: 207303.1 Client / Server Interoperability Support Matrix for Different Oracle Versions under the certification matrix in section 'Current Interoperability Support Situation':

#8 - Attempting to connect from 9.2 to 12.1 will fail with an "ORA-28040: No matching authentication protocol" error.

 

SOLUTION

Upgrade the JDBC driver to 11g or JDBC 12c.
These releases can be downloaded from the 
JDBC/UCP Download Page.


Please make sure to use the appropriate JDBC 11g or JDBC 12c jar files based on the JDK version to be used.
For details, please refer to :

Document: 401934.1 Starting With Oracle JDBC Drivers 
Section : Which JDBC driver version goes with which JDK version ?


This document has been taken from Oracle Support Doc ID 2111118.1

Comments