How to let Talend to load my JDBC driver jar file.

One Star

How to let Talend to load my JDBC driver jar file.

I want to use my own UDB driver which is hit.db and I replace my jar in org.talend.libraries_2.0.0.r3065.jar and modified the MANIFEST.MF file to point to my new jar. I also make sure my new jar is imported by all DB2 three components. I was SUCCESSFUL to get UDB connection using my own JDBC driver in Job Design db2Input component (I changed the template so the generated code use my driver) . I have problem to deal with it in MetaData part when creating new DBConnection and I am still getting the exception showing ClassNotFoundException. How Talend load JDBC jars (I have my JDBC jar file in both %TALEND_HOME%\lib\java folder and %TALEND_HOME%\configuration\org.eclipse.osgi\bundles\180\1\.cp folder )? Can someone here to help me on this cuz I am fighting on this a whole day. So frustrated!
The error I got (I changed class ExtractMetaDataFromDataBase so I can see stack trace.)
******* Connection string is:jdbc:db2://xxx.xx.xx.xx:32100/DBN, db type is:IBM DB2
+++ calling ExtractMetaDataUtils class :
find driver class : hit.db2.Db2Driver
java.lang.ClassNotFoundException: hit.db2.Db2Driver
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:402)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:347)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.talend.core.model.metadata.builder.database.ExtractMetaDataFromDataBase.testConnection(ExtractMetaDataFromDataBase.java:268)
at org.talend.repository.ui.utils.ManagerConnection.check(ManagerConnection.java:113)
at org.talend.repository.ui.wizards.metadata.connection.database.DatabaseForm.checkConnection(DatabaseForm.java:279)
at org.talend.repository.ui.wizards.metadata.connection.database.DatabaseForm.access$11(DatabaseForm.java:265)
at org.talend.repository.ui.wizards.metadata.connection.database.DatabaseForm$3.widgetSelected(DatabaseForm.java:367)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
at org.eclipse.jface.window.Window.open(Window.java:796)
at org.talend.repository.ui.actions.metadata.CreateConnectionAction.run(
CreateConnectionAction.java:141)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:499)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection
(ActionContributionItem.java:539)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContri
butionItem.java:488)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionC
ontributionItem.java:400)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.talend.rcp.intro.Application.run(Application.java:66)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformAct
ivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runAppli
cation(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)
One Star

Re: How to let Talend to load my JDBC driver jar file.

Can some one help me to figour it out since my project is stucked on this because the database connection issue. I am really hoping Talend provide a generaic JDBC component which allow user define driver and URL like some other ETL tools. Thanks.
One Star

Re: How to let Talend to load my JDBC driver jar file.

The original error is:
com.ibm.db2.jcc.a.SqlException: The version of the IBM Universal JDBC driver in
use is not licensed for connectivity to QDB2 databases. To connect to this DB2
server, please obtain a licensed copy of the IBM DB2 Universal Driver for JDBC a
nd SQLJ. An appropriate license file db2jcc_license_*.jar for this target platf
orm must be installed to the application classpath. Connectivity to QDB2 databa
ses is enabled by any of the following license files: { db2jcc_license_cisuz.jar
}
Where can I get db2jcc_license_cisuz.jar when I am doing evaluation? We normally have JDBC HIT driver (hit.db2.Db2Driver) for IBM UDB connection and Talend wouln't lwt me use HIT driver or maybe I did it wrong. Thanks.
One Star

Re: How to let Talend to load my JDBC driver jar file.

hi,
Same probleme here.
Why TOS do not use a generic jdbc driver, hu ?
regards
One Star

Re: How to let Talend to load my JDBC driver jar file.

Hi
I also try to connect to DB2 database but i had the same problem with the universal drive. I developpe under java with standard JT400 from IBM is it not possible to use jt400 instead of DB2 driver.
thank's for yor answer
One Star

Re: How to let Talend to load my JDBC driver jar file.

we are loading TISEE and then copying our db2jcc.jar file to \TIS_EE-All-r29781-V3.1.4\lib\java before we run our jobs. this is an awkward solution, but it works. any ideas on how to get our driver to "stick" instead of being overwritten?
thanks.