Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jaydebeapi teradata connection

I am trying to connect to teradata database using jaydebeapi package.

conn = jaydebeapi.connect('com.teradata.jdbc.TeraDriver',
                          ['jdbc:teradata://ip/TMODE=ANSI,CHARSET=utf8', 'username', 'password'],
                          ['/teradata/tdgssconfig.jar',
                           '/terajdbc4.jar'])

Error while execution:

    TERAJDBC4 ERROR [main] com.teradata.jdbc.jdk6.JDK6_SQL_Connection@3d1a70a7 Connection to <ip_address> Wed Oct 07 13:47:29 IST 2015 socket orig=<ip_address> cid=22f79598 sess=0 java.net.SocketTimeoutException: connect timed out  at java.net.PlainSocketImpl.socketConnect(Native Method)  at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)  at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)  at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)  at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)  at java.net.Socket.connect(Socket.java:579)  at com.teradata.jdbc.jdbc_4.io.TDNetworkIOIF$ConnectThread.run(TDNetworkIOIF.java:1216) 
Traceback (most recent call last):
  File "test_teradata.py", line 32, in <module>
    teradataconn()
  File "test_teradata.py", line 26, in teradataconn
    '/home/abhishek/git/dblore/code/lib/teradata/terajdbc4.jar'])
  File "/usr/local/lib/python2.7/dist-packages/jaydebeapi/__init__.py", line 359, in connect
    jconn = _jdbc_connect(jclassname, jars, libs, *driver_args)
  File "/usr/local/lib/python2.7/dist-packages/jaydebeapi/__init__.py", line 183, in _jdbc_connect_jpype
    return jpype.java.sql.DriverManager.getConnection(*driver_args)
jpype._jexception.SQLExceptionPyRaisable: java.sql.SQLException: [Teradata JDBC Driver] [TeraJDBC 15.00.00.20] [Error 1277] [SQLState 08S01] Login timeout for Connection to <ip_address> Wed Oct 07 13:47:29 IST 2015 socket orig=<ip_address> cid=22f79598 sess=0 java.net.SocketTimeoutException: connect timed out  at java.net.PlainSocketImpl.socketConnect(Native Method)  at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)  at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)  at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)  at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)  at java.net.Socket.connect(Socket.java:579)  at com.teradata.jdbc.jdbc_4.io.TDNetworkIOIF$ConnectThread.run(TDNetworkIOIF.java:1216) 
like image 742
Abhi Avatar asked Feb 18 '26 09:02

Abhi


1 Answers

I use the following code to connect to a Teradata DB, it works with several servers and databases.

import jaydebeapi
server=192.168.3.4
database=dbc
user=dbc
password=dbc

# from TD JDBC readme.txt
jclassname='com.teradata.jdbc.TeraDriver'
# from TD Studio jdbc:<subprotocol>://<server>:<port>/<database>
url='jdbc:teradata://'+server+'/'+database
# driver args contains the arguments passed to java: DriverManager.getConnections(...)
driver_args=[url,user,password]
# my jars are in CLASSPATH environment variable, if not then put the paths to them into a list, e.g.: jars=[r'C:\Program Files\Teradata\TeraJDBC\terajdbc4.jar;C:\Program Files\Teradata\TeraJDBC\tdgssconfig.jar']
jars=None

jaydebeapi.connect(jclassname,driver_args,jars)

Comparing with your code I only see ip (replacing your real IP address, I guess) in your url, do you also have added the database name there to the path? If not, the problem might be there.

like image 163
jayesef Avatar answered Feb 20 '26 23:02

jayesef



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!