Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

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.

Labels (3)
5 Replies
Anonymous
Not applicable
Author

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 0683p000009MACn.png

manodwhb
Champion II
Champion II

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

Anonymous
Not applicable
Author

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. 


missing jdbc.png
Anonymous
Not applicable
Author

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. 


emptymoduleinstall.png
test db connection.png
manodwhb
Champion II
Champion II

@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.