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