Talend Cannot Retrieve Schema (Class Not Found), but can connect to JDBC DB Connection without issue.

Highlighted
Four Stars

Talend Cannot Retrieve Schema (Class Not Found), but can connect to JDBC DB Connection without issue.

System info: 

Talend Open Studio for Data Integration, version 7.2.1

Database: Intersystems Cache / JDBC Connection

JAR: cache-jdbc-2.0.0.jar (from my DB provider, NOT Talend/Maven repo.)

 

Background: I had Talend on my old computer, with a JDBC connection set up to our Cache database without any issue. I could connect, retrieve schema, query, run jobs all day without issue. I got a new PC, and before moving, I moved my entire Talend project to our network then down into my new pc. 

I then imported the Talend project 'like normal', and everything worked wonderfully. When I tested my JDBC connection, via MetaData -> Db Connections -> Edit Connection -> Test Connection, it worked fine again. Able to connect no issue. 

 

Problem: I realized I needed to add in a few more tables to my Talend job, so I right clicked on the DB connection and chose 'Retrieve Schema' - instead of the of Table/View/Synonym selector that normally appeared, I received an EMPTY missing module box that says "List of modules not installed for current operation:" (empty list). 

If I close the box, I receive an error saying it could not connect to the database, with the following stack trace:

 

Connection failure, check the database settings or contact your database administrator.
  org.talend.utils.exceptions.MissingDriverException: can not find class :com.intersys.jdbc.CacheDriver
  missing JDBC driver :
  null
      at org.talend.core.model.metadata.builder.database.ExtractMetaDataUtils.connect(ExtractMetaDataUtils.java:1169)
      at org.talend.core.model.metadata.builder.database.ExtractMetaDataFromDataBase.testConnection(ExtractMetaDataFromDataBase.java:315)
      at org.talend.metadata.managment.repository.ManagerConnection.check(ManagerConnection.java:387)
      at org.talend.metadata.managment.repository.ManagerConnection.check(ManagerConnection.java:321)
      at org.talend.repository.ui.wizards.metadata.table.database.SelectorTableForm$8.run(SelectorTableForm.java:1105)
      at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)


But I can run a job that queries the database, and have it print out the results for a view that I've already pulled in previously from the very same database connection that it says it can't find. So Talend *can* connect to the database when a job is run, but not to retrieve a schema for new tables? Very odd.

 

Side note: I've also tried opening the Module view, under Help -> Show View -Other -> Modules. If I search for 'cache', it won't show the cache-jdbc-2.0.0.jar. So I'll click on the jar icon and "install it". But if I refresh that same module filter, the jar entry disappears. It's like Talend isn't saving the fact that I've installed the .jar.

 

If you have any ideas I'd love to hear it. I'm sure the problem is related to my copying and pasting the entire job from one pc to the next, but I'm not sure where in the configuration files I can look to see if it's maybe mapping a location incorrectly or something. I noticed there's a library_data.index file which seemed to contain maven ids of each library, but I didn't see my cache jdbc entry in there even after "installing" it.

Four Stars

Re: Talend Cannot Retrieve Schema (Class Not Found), but can connect to JDBC DB Connection without issue.

Anyone have any thoughts on this? I know it's a highly specific scenario, but I've yet to find any fix.

I've continued on with my project as much as possible, and I've come across another oddity: When creating a tDBInput(JDBC) component, the Schema selector (...) still gives an error, but if I select the (...) for the Table name field, it will populate an update-to-date list of tables from the database. So Talend really cannot decide if it can connect to the database or not, and it's really bizarre.

 

I also tried once again wiping out (including going into Recycling Bin -> Delete Forever) all of the JDBC connections and manually creating them yet again, no change. I don't know what setting or configuration I've messed up, but it's driving me insane trying to figure it out. Any help is appreciated Smiley Happy

Forteen Stars

Re: Talend Cannot Retrieve Schema (Class Not Found), but can connect to JDBC DB Connection without issue.

@sam_mapwork ,can you check that the jar (cache-jdbc-2.0.0.jar) has installed or not ? if not please install and try.

Manohar B
Don't forget to give kudos/accept the solution when a replay is helpful.
Four Stars

Re: Talend Cannot Retrieve Schema (Class Not Found), but can connect to JDBC DB Connection without issue.

Hi Mano, 

No, the installed .jar is not there. I've installed it several times, but after installing, it then disappears again, like Talend didn't actually install it, despite saying it did. I've uploaded a screenshot of the before/after installing. When I originally install it, it's there. But if I refresh the modules or navigate away from the screen, it disappears and I have to re-reinstall it. 

Four Stars

Re: Talend Cannot Retrieve Schema (Class Not Found), but can connect to JDBC DB Connection without issue.

I've also attached screenshots of 1) Talend successfully testing the db connection with the parameters provided, and 2) the empty 'install the missing modules' screen when I attempt to retrieve the schema. 

Forteen Stars

Re: Talend Cannot Retrieve Schema (Class Not Found), but can connect to JDBC DB Connection without issue.

@sam_mapwork ,with context variable you can test the connection,you can not retrieve the metadata,so you need to create with hard coded values to retrieve schema. 

Manohar B
Don't forget to give kudos/accept the solution when a replay is helpful.

2019 GARNER MAGIC QUADRANT FOR DATA INTEGRATION TOOL

Talend named a Leader.

Get your copy

OPEN STUDIO FOR DATA INTEGRATION

Kickstart your first data integration and ETL projects.

Download now

What’s New for Talend Summer ’19

Watch the recorded webinar!

Watch Now

Best Practices for Using Context Variables with Talend – Part 1

Learn how to do cool things with Context Variables

Blog

Migrate Data from one Database to another with one Job using the Dynamic Schema

Find out how to migrate from one database to another using the Dynamic schema

Blog

Best Practices for Using Context Variables with Talend – Part 4

Pick up some tips and tricks with Context Variables

Blog