ORA-28040: No matching authentication protocol : Oracle 12c Upgrade

Tushar picture Tushar · Jun 30, 2015 · Viewed 44.4k times · Source

We have migrated our Oracle database to 12c from 11g. We have a legacy application running in Java 1.5 and using ojdbc14.jar.

Our application is not able to create connection to database error saying :

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

I reffered to answer ORA-28040: No matching authentication protocol exception, and tried to upgrade my ojdbc14.jar to ojdbc6.jar.

I now have a different error message saying :

  error: OracleCallableStatement is not public in oracle.jdbc.driver; cannot be accessed from outside package
import oracle.jdbc.driver.OracleCallableStatement;
                          ^
error: OracleTypes is not public in oracle.jdbc.driver; cannot be accessed from outside package
            cstmt.registerOutParameter(3,oracle.jdbc.driver.OracleTypes.CURSOR);
                                           ^

Ant build file :

<javac srcdir="${src}" destdir="${classes}" source="1.5" target="1.5">
            <classpath refid="cpath" />
</javac>

Not sure what exactly we should do to get the application working.

Answer

VC1 picture VC1 · Jul 23, 2015

I had the same error with 2 different applications recently:

  1. a Java 7 app on Tomcat 7 using odbc6.jar with Oracle 12 c database.
  2. a legacy ASP application with Oracle 12 c database.

The second solution mentioned in the same post you referred to - worked well for us.

Workaround: Set SQLNET.ALLOWED_LOGON_VERSION=8 in the oracle/network/admin/sqlnet.ora file.

We worked with our DBAs to set the above option on the sqlnet.ora on the database server. This resolved our issue. I hope it helps someone.