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
asked Oct 20, 2021 in Docker by moibueno (180 points) | 1 view

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.
answered Oct 20, 2021 by mlibanor (5,090 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 

1,555 questions
1,017 answers
2,038 comments
2,568 users