Teradata Connection Issues

I saw that there was an old thread about Teradata issues that was left unanswered, so I thought I'd open a new one. When I attempt to use the Teradata JDBC driver v14.00.00.13 in the Database Reader, I get the following stacktrace. After looking at the stacktrace, I thought that the problem was the location of the file tdgssconfig.jar so I put it in the same directory as the registered jdbc driver. That didn't help. Next I moved it to the dropin folder. That didn't help either. Any ideas would be greatly appreciated.

 

DEBUG DatabaseConnectionSettings Opening database connection to "jdbc:teradata://ghstdanx"...

WARN Database Reader java.sql.SQLException: java.lang.NullPointerException

DEBUG Database Reader java.sql.SQLException: java.lang.NullPointerException

org.knime.core.node.InvalidSettingsException: java.sql.SQLException: java.lang.NullPointerException

at org.knime.base.node.io.database.DBReaderNodeModel.configure(DBReaderNodeModel.java:234)

at org.knime.core.node.NodeModel.configure(NodeModel.java:1028)

at org.knime.core.node.NodeModel.configureModel(NodeModel.java:972)

at org.knime.core.node.Node.configure(Node.java:1469)

at org.knime.core.node.workflow.SingleNodeContainer.nodeConfigure(SingleNodeContainer.java:443)

at org.knime.core.node.workflow.SingleNodeContainer.configure(SingleNodeContainer.java:364)

at org.knime.core.node.workflow.WorkflowManager.configureSingleNodeContainer(WorkflowManager.java:4407)

at org.knime.core.node.workflow.WorkflowManager.configureNodeAndPortSuccessors(WorkflowManager.java:4576)

at org.knime.core.node.workflow.WorkflowManager.configureNodeAndSuccessors(WorkflowManager.java:4519)

at org.knime.core.node.workflow.WorkflowManager.loadNodeSettings(WorkflowManager.java:1167)

at org.knime.core.node.workflow.NodeContainer.applySettingsFromDialog(NodeContainer.java:916)

at org.knime.workbench.ui.wrapper.WrappedNodeDialog.doApply(WrappedNodeDialog.java:511)

at org.knime.workbench.ui.wrapper.WrappedNodeDialog.doOK(WrappedNodeDialog.java:431)

at org.knime.workbench.ui.wrapper.WrappedNodeDialog.access$6(WrappedNodeDialog.java:428)

at org.knime.workbench.ui.wrapper.WrappedNodeDialog$6.widgetSelected(WrappedNodeDialog.java:386)

at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)

at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)

at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)

at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)

at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)

at org.eclipse.jface.window.Window.open(Window.java:801)

at org.knime.workbench.ui.wrapper.WrappedNodeDialog.open(WrappedNodeDialog.java:184)

at org.knime.workbench.editor2.editparts.NodeContainerEditPart.openDialog(NodeContainerEditPart.java:715)

at org.knime.workbench.editor2.editparts.NodeContainerEditPart.performRequest(NodeContainerEditPart.java:309)

at org.eclipse.gef.tools.SelectEditPartTracker.performOpen(SelectEditPartTracker.java:194)

at org.eclipse.gef.tools.SelectEditPartTracker.handleDoubleClick(SelectEditPartTracker.java:137)

at org.eclipse.gef.tools.AbstractTool.mouseDoubleClick(AbstractTool.java:1069)

at org.eclipse.gef.tools.SelectionTool.mouseDoubleClick(SelectionTool.java:525)

at org.eclipse.gef.EditDomain.mouseDoubleClick(EditDomain.java:231)

at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchMouseDoubleClicked(DomainEventDispatcher.java:291)

at org.eclipse.draw2d.LightweightSystem$EventHandler.mouseDoubleClick(LightweightSystem.java:518)

at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:189)

at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)

at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)

at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)

at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)

at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)

at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)

at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)

at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)

at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)

at org.knime.product.rcp.KNIMEApplication.start(KNIMEApplication.java:126)

at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)

at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)

at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)

at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)

at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)

at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)

at org.eclipse.equinox.launcher.Main.run(Main.java:1407)

Caused by: java.sql.SQLException: java.lang.NullPointerException

at org.knime.core.node.port.database.DatabaseConnectionSettings.createConnection(DatabaseConnectionSettings.java:354)

at org.knime.core.node.port.database.DatabaseReaderConnection.getDataTableSpec(DatabaseReaderConnection.java:218)

at org.knime.base.node.io.database.DBReaderNodeModel.configure(DBReaderNodeModel.java:227)

... 56 more

Caused by: java.lang.NullPointerException

at com.teradata.tdgss.jtdgss.TdgssConfigApi.GetMechanisms(Unknown Source)

at com.teradata.tdgss.jtdgss.TdgssManager.<init>(Unknown Source)

at com.teradata.tdgss.jtdgss.TdgssManager.getInstance(Unknown Source)

at com.teradata.jdbc.jdbc.GenericTeraEncrypt.getGSSM(GenericTeraEncrypt.java:623)

at com.teradata.jdbc.jdbc.GenericTeraEncrypt.getConfig(GenericTeraEncrypt.java:641)

at com.teradata.jdbc.jdbc.GenericTeraEncrypt.getUserNameForOid(GenericTeraEncrypt.java:734)

at com.teradata.jdbc.AuthMechanism.<init>(AuthMechanism.java:50)

at com.teradata.jdbc.jdbc.GenericLogonController.run(GenericLogonController.java:122)

at com.teradata.jdbc.jdbc_4.TDSession.<init>(TDSession.java:215)

at com.teradata.jdbc.jdk6.JDK6_SQL_Connection.<init>(JDK6_SQL_Connection.java:30)

at com.teradata.jdbc.jdk6.JDK6ConnectionFactory.constructConnection(JDK6ConnectionFactory.java:22)

at com.teradata.jdbc.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:130)

at com.teradata.jdbc.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:120)

at com.teradata.jdbc.TeraDriver.doConnect(TeraDriver.java:228)

at com.teradata.jdbc.TeraDriver.connect(TeraDriver.java:154)

at org.knime.core.node.port.database.DatabaseWrappedDriver.connect(DatabaseWrappedDriver.java:86)

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

at org.knime.core.node.port.database.DatabaseConnectionSettings$1.call(DatabaseConnectionSettings.java:344)

at org.knime.core.node.port.database.DatabaseConnectionSettings$1.call(DatabaseConnectionSettings.java:1)

at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

at java.util.concurrent.FutureTask.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

DEBUG NodeContainer Database Reader 0:2:1 has new state: IDLE

DEBUG NodeContainer test 0:2 has new state: IDLE

Here's an update. I saw that the NullPointer was caused on a call to GetMechanisms, and I saw in the jdbc driver user manual that there is a parameter called LOGMECH. It is suppose to default to the databases default login mechanism. I thought maybe our dbas didn't have this set, so I specifically set it in the url to ldap. That didn't work either.

HALF SOLVED. I couldn't figure out where to put that other jar file so that it would be in the classpath, so I cheated a little bit. I open the jar and saw that it only included an xml file. I copied that xml file to the root of the terajdbc4.jar file. That did the trick. The real problem here id where does one put non-jdbc driver jar files that are not tied to a java node? I tried /dropins, /plugins, the same location as the jdbc jar file, and /plugins/org.knime.core_2.5.4.0032975/lib, none of which worked.

In your KNIME installation you find a jre (that we bundle with KNIME), try to put the file into <knime>/jre/lib/ext. Hope this helps?

For Macbook, what’s the equivalent location /jre/lib/ext? (I have added Teradata JDBC driver the standard way, but doesn’t work)

Sorry to revive this old thread. I have recently switched from Windows to Mac and trying to connect to our Teradata and Cloudera Hadoop.

saw an older post advising how to configure Impala, that thread suggested to put krb5.conf file to /jre/lib/security inside knime installation folder, for Windows OS. For MacOS high Sierra, where will be the equivalent location?

Hi Amit,

You’re right that the jre location is slightly different on a Mac. I don’t have a Mac to hand, but I think that the location is something like:
/Applications/KNIME\ 3.5.3.app/Contents/Eclipse/jre/

You can browse the location by right-clicking on the KNIME executable and choosing ‘Show Contents’ (at least that’s what I remember from memory).

Best,

Jon

Hi,

Thanks for the detailed information on solving this problem. I am a MAC user, this is how I solved the problem. Add directory which contains both tdgssconfig.jar and terajdbc4.jar and restarted KNIME. This fixed the issue in my KNIME.

Steps to add the driver in MAC:

  1. Go to Quick Search at the top right corner of your KNIME and search for “Preferences”
  2. In Preferences-> KNIME->Database ->Add Directory
1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.