Problem Description: Oracle source ingestion job fails with the below error in the job log in Infoworks on Databricks.
Caused by: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 6.0 failed 4 times, most recent failure: Lost task 0.3 in stage 6.0 (TID 108, 172.24.154.41, executor 0): java.sql.SQLException: ORA-28040: No matching authentication protocol
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:305)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:272)
at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOsesskey(T4CTTIoauthenticate.java:239)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:295)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:344)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:148)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:545)
Root cause: This issue happens because of a limitation (Bug 14575666) from the Oracle Database server end. In v12.1, the default value for the SQLNET.ALLOWED_LOGON_VERSION parameter has been updated to 11.
This means that database clients using pre-11g JDBC thin drivers (Infoworks users ojdbc6.jar) cannot authenticate to 12.1 database servers unless the SQLNET.ALLOWED_LOGON_VERSION parameter is set to the old default of 8.
Solution: Check with your ORACLE DBA and Set SQLNET.ALLOWED_LOGON_VERSION=8 in the
oracle/network/admin/sqlnet.ora file on the DB server-side and then try the ingestion job again.
Related Article
https://docs.oracle.com/database/121/READM/chapter12102.htm#READM266
https://stackoverflow.com/questions/24100117/ora-28040-no-matching-authentication-protocol-exception
Applicable Infoworks on Databricks versions:
4.x