ORA-28040: No matching authentication protocol : Oracle 12c Upgrade
Solution 1
I had the same error with 2 different applications recently:
- a Java 7 app on Tomcat 7 using odbc6.jar with Oracle 12 c database.
- 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.
Solution 2
I faced the same error.
Got it resolved by without removing ojdbc14.jar.
step 1 : set SQLNET.ALLOWED_LOGON_VERSION=8
Step 2 : change
Connection conn = (Connection) DriverManager.getConnection("jdbc:oracle:thin:@server:port:sid", "username", "passwrd");
to
java.sql.Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@@server:port:sid", "username", "passwrd");
It will works!
Solution 3
After migrating from Oracle 11
to Oracle 12.
In my case lib directory had both OJDBC14.jar
& OJDBC8.jar
.
After removing older OJDBC14.jar it worked for me.
Tushar
Software Developer at Ingenu (San Diego) pursuing Masters in Computer Science from San Diego State University.
Updated on February 18, 2020Comments
-
Tushar about 4 years
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.