Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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.

like image 784
Tushar Avatar asked Jun 30 '15 14:06

Tushar


People also ask

Can Oracle 11G client connect to 12C database?

Our Autosys job uses Oracle 11G client to connect to 12C DB. We completed our testing running 1 or 2 Autosys jobs and jobs completed successfully. Running all jobs will take 2 or 3 days for end to end testing.

What is Sqlnet Allowed_logon_version?

SQLNET.ALLOWED_LOGON_VERSION = 10. If the parameter does not exist, this is a Finding. If the parameter is not set to a value of 10 or higher, this is a Finding. NOTE: It has been reported that the there is an Oracle bug (6051243) that prevents connections to the DBMS using JDBC THIN drivers when this parameter is set.

Where is Sqlnet Ora file?

By default, the sqlnet. ora file is located in the ORACLE_HOME/network/admin directory. The sqlnet. ora file can also be stored in the directory specified by the TNS_ADMIN environment variable.


1 Answers

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.

like image 78
VC1 Avatar answered Nov 09 '22 15:11

VC1