Tirthankar
Tirthankar

Reputation: 75

Error in JDBC-Teradata Connectivity

I have tried connecting to teredata DB through JDBC. I am using the jars 'terajdbc4.jar' and 'tdgssconfig.jar', but I am getting a ClassNotFoundException and NoClassDefFoundError for something kind of com.ncr.teradata.jtdgss.TdgssManager is not found.

Please help me to find a solution. I have provided my code snippet followed by the error log. The user name and passwords are correct as connect to the teradata DB through UNIX using that ID.

public class HelloTeradataJDBC {


  public static void main(String[] args) throws Exception {

    String url="jdbc:teradata://10.10.***.**/DBS_PORT= 1025/DATABASE= ******/TMODE=ANSI,CHARSET=UTF8";

    try{
    Class.forName("com.ncr.teradata.TeraDriver");
    Connection conn=DriverManager.getConnection(url, "*****", "******");
    //Connection conn=DriverManager.getConnection(connurl, "javauser1", "password1");

    String query="select * from xi.san_emp";


    PreparedStatement stmt=conn.prepareStatement(query);
    ResultSet rs=stmt.executeQuery();
    while(rs.next()) {
        String col1=rs.getString(1);
        System.out.println("col1="+col1);
    }
    }catch(ClassNotFoundException e){
        e.printStackTrace();
    }
  }
}

Error:

Exception in thread "main" java.lang.NoClassDefFoundError: com/ncr/teradata/jtdgss/TdgssManager
    at com.ncr.teradata.TeraEncrypt.getTDgssVersion(TeraEncrypt.java:548)
    at com.ncr.teradata.jdbc_4.parcel.ConfigFeatureTdgss.<init>(ConfigFeatureTdgss.java:44)
    at com.ncr.teradata.jdbc_4.statemachine.InitDBConfigState.action(InitDBConfigState.java:68)
    at com.ncr.teradata.jdbc_4.statemachine.LogonController.run(LogonController.java:50)
    at com.ncr.teradata.jdbc_4.TDSession.<init>(TDSession.java:150)
    at com.ncr.teradata.jdbc_3.ifjdbc_4.TeraLocalConnection.<init>(TeraLocalConnection.java:89)
    at com.ncr.teradata.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:50)
    at com.ncr.teradata.TeraDriver.connect(TeraDriver.java:214)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at HelloTeradataJDBC.main(HelloTeradataJDBC.java:15)
Caused by: java.lang.ClassNotFoundException: com.ncr.teradata.jtdgss.TdgssManager
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 11 more

Upvotes: 4

Views: 4203

Answers (1)

rogue-one
rogue-one

Reputation: 11587

This will work. THe Driver name is com.teradata.jdbc.TeraDriver instead of com.ncr.teradata.TeraDriver which I believe is dated.

Class.forName("com.teradata.jdbc.TeraDriver");
conn = DriverManager.getConnection("jdbc:teradata://"+servername+"/databasename="+this.username+",user="+this.username+",password="+this.password);

Upvotes: 2

Related Questions