Welcome to Knowage Q&A, where you can ask questions and receive answers from other members of the community.
0 votes
1 view

I'm little confused configuring the access to Teradata database, since I could not find the folder described on the documentation.

Could someone clarify what I'm doing wrong?

Environment Knowage 8; Ubuntu 20.04
in Docker by (180 points)

1 Answer

+1 vote
Hi,

it's really simple: "KnowageServer-<version>" is just a placeholder; we will correct it to make it more clear.

I don't know how you installed Knowage but either you used the official installer or a manual installation, you need to go where you installed Apache Tomcat. You will find the following structure (see the screenshot at the following url):

https://i.imgur.com/4nJkRFz.png

The lib directory from the documentation is the lib directory you can find in your Tomcat installation dir.
by (5.1k points)

Thank you for the answer! 


Unfortunately this is a docker environment in a  Ubuntu Linux server and it seams to be is a little more complicated (to me).

I got the package and installation instructions from this link: https://hub.docker.com/r/knowagelabs/knowage-server-docker/ (Referred on Knowage site - https://www.knowage-suite.com/site/knowage-download/#docker)

I put the jdbc jar file into /home/knowage/apache-tomcat/lib/ folder of knowage-server-docker_knowage_1 container. 

# docker exec -it knowage-server-docker_knowage_1 /bin/bash
root@dab504d74a03:/home/knowage# find / -name terajdbc4.jar -print
/home/knowage/apache-tomcat/lib/terajdbc4.jar

I suppose this is the appropriate folder, but not sure... I'll appreciate if you can confirm it.

After that I tried to connect, but no success. Maybe I'm using wrong parameters.

Yes, I confirm that is the correct directory.

About the URL for Teradata, is it correct? I think it may match the following pattern:

jdbc:teradata://server-name:server-port/database-server-name

Yes, mlibanor

The connection works fine with the URL jdbc:teradata://<dbserver>.

I checked the URL suggested (jdbc:teradata://<dbserver>:1025/<dbname>), but the connection fails. I did not analized the log, but I will take a look into it later.

Thank you!!!

knowage.log

[http-nio-8080-exec-18] 21 Oct 2021 11:13:41,519 ERROR it.eng.spagobi.tools.datasource.service.rest.TestConnection.testDataSourceNew:217 - Error testing datasources
java.sql.SQLException: [Teradata JDBC Driver] [TeraJDBC 16.20.00.13] [Error 1000] [SQLState 08S01] Login failure for Connection to 192.168.0.99:1025 Thu Oct 21 11:13:41 UTC 2021 socket orig=192.168.0.99:1025 cid=6a4c0844 sess=0 java.net.UnknownHostException: 192.168.0.99:1025: invalid IPv6 address  at java.net.InetAddress.getAllByName(InetAddress.java:1170)  at java.net.InetAddress.getAllByName(InetAddress.java:1127)  at com.teradata.jdbc.jdbc_4.io.TDNetworkIOIF$Lookup.doLookup(TDNetworkIOIF.java:223)  at com.teradata.jdbc.jdbc_4.io.TDNetworkIOIF$Lookup.isLiteralIpAddress(TDNetworkIOIF.java:249)  at com.teradata.jdbc.jdbc_4.io.TDNetworkIOIF.connectToHost(TDNetworkIOIF.java:336)  at com.teradata.jdbc.jdbc_4.io.TDNetworkIOIF.createSocketConnection(TDNetworkIOIF.java:156)  at com.teradata.jdbc.jdbc_4.io.TDNetworkIOIF.<init>(TDNetworkIOIF.java:142)  at com.teradata.jdbc.jdbc.GenericTeradataConnection.getIO(GenericTeradataConnection.java:143)  at com.teradata.jdbc.jdbc.GenericLogonController.run(GenericLogonController.java:100)  at com.teradata.jdbc.jdbc_4.TDSession.<init>(TDSession.java:211)  at com.teradata.jdbc.jdk6.JDK6_SQL_Connection.<init>(JDK6_SQL_Connection.java:36)  at com.teradata.jdbc.jdk6.JDK6ConnectionFactory.constructSQLConnection(JDK6ConnectionFactory.java:25)  at com.teradata.jdbc.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:181)  at com.teradata.jdbc.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:171)  at com.teradata.jdbc.TeraDriver.doConnect(TeraDriver.java:236)  at com.teradata.jdbc.TeraDriver.connect(TeraDriver.java:162)  at java.sql.DriverManager.getConnection(DriverManager.java:664)  at java.sql.DriverManager.getConnection(DriverManager.java:247)  at it.eng.spagobi.tools.datasource.service.rest.TestConnection.testDataSourceNew(TestConnection.java:204)  at sun.reflect.GeneratedMethodAccessor491.invoke(Unknown Source)  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  at java.lang.reflect.Method.invoke(Method.java:498)  at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140)  at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:294)  at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:248)  at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:235)  at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:398)  at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:205)  at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:228)  at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)  at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)  at sun.reflect.GeneratedMethodAccessor381.invoke(Unknown Source)  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  at java.lang.reflect.Method.invoke(Method.java:498)  at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)  at java.security.AccessController.doPrivileged(Native Method)  at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)  at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)  at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:170)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:221)  at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)  at java.security.AccessController.doPrivileged(Native Method)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)  at sun.reflect.GeneratedMethodAccessor380.invoke(Unknown Source)  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  at java.lang.reflect.Method.invoke(Method.java:498)  at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)  at java.security.AccessController.doPrivileged(Native Method)  at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)  at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)  at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187)  at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)  at java.security.AccessController.doPrivileged(Native Method)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)  at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1726)  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)  at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)  at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)  at java.lang.Thread.run(Thread.java:748)

I found this doc from Teradata that confirms that the URL do not expect the server-port into it.

https://teradata-docs.s3.amazonaws.com/doc/connectivity/jdbc/reference/current/frameset.html 

...