Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us in NYC Sept 4th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
LukasHruska
Contributor
Contributor

Request for Assistance - Databricks JDBC Load Issue in Talend 8 with Java 17

Hello Talend Support Team,

I am encountering a persistent issue when trying to load data from Databricks via JDBC in Talend 8 using Java 17. Below is a brief summary of the problem and the steps I have already taken:

Environment & Setup:

  • Talend 8 (Studio version 2024-10)

  • Java 17 (HotSpot JDK 17.0.11)

  • Databricks JDBC driver 2.6.40

  • Connection string (example):

    bash
    Copy code
    jdbc:databricks://adb-3178472978883225.5.azuredatabricks.net:443/default
      ;transportMode=http
      ;ssl=1
      ;httpPath=sql/protocolv1/o/3178472978883225/1218-184617-zyvhht5e
      ;AuthMech=3
      ;UID=token
      ;PWD=<token>
      ;EnableArrow=0;
    
    

Error Description: When attempting to run a job (tDBInput or similar component) that queries Databricks, the job fails with an InaccessibleObjectException. The relevant part of the error log reads:

vbnet
Copy code
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.IllegalStateException: java.lang.reflect.InaccessibleObjectException:
  Unable to make java.lang.invoke.MethodHandles$Lookup(java.lang.Class) accessible:
  module java.base does not "opens java.lang.invoke" to unnamed module @xxxxxx

We have already:

  1. Added all standard -add-opens lines to our Talend .ini file, including:and verified the .ini content.

    csharp
    Copy code
    --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
    --add-opens=java.base/java.nio=ALL-UNNAMED
    --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
    ...
    
    
  2. Restarted Talend and confirmed the environment is using Java 17.

  3. Tried setting EnableArrow=0 in the connection string to avoid Arrow-based reflection issues.

  4. Checked that other Talend jobs (not connecting to Databricks) run fine under the same Java version.

  5. Attempted to ensure the same VM arguments are applied both in Talend Studio and when exporting/running the job externally.

Despite these measures, the reflection error persists specifically for the Databricks connection. We suspect the required --add-opens are not being fully honored, or there is a conflict between the Databricks driver’s reflection calls and Talend’s module settings under Java 17.

Request for Assistance: Could you please advise on:

  1. Any additional configuration or patches needed for Talend 8 to handle Java 17 reflection with Databricks JDBC?
  2. Best practices for ensuring -add-opens flags are applied to jobs that use the Databricks driver, particularly when run from the Talend Studio or CommandLine/Talend Management Console.
  3. Any known compatibility issues or additional driver settings that might resolve this error.

I greatly appreciate your help. If you need more logs or environment details, please let me know. Thank you in advance for your guidance on this matter.

Best regards,

Lukas Hruska

Data Engineer

NN Group Slovakia

Labels (2)
2 Replies
jerryespn
Employee
Employee

Hello @LukasHruska did you have any feedback or anything? I´m having exactly same issue here

Denis_Segard
Support
Support

Hello,

A remark :  JVM options are not inherited ..

So, adding some JVM options in the Talend Studio ini file will not "help" for jobs launched from Studio (A new Java process is launched by the Studio and the JVM properties used by this "new" Java process are the one specified in the JVM Arguments) 

For ex : https://help.qlik.com/talend/en-US/components/8.0/loqate-address-standardization/tloqateaddressrow-t...

Kind regards
Denis