apigee / trireme-jdbc

Other
9 stars 5 forks source link

Cannot connect to Teradata using JDBC Type 4 connection string #2

Closed kanaskik closed 8 years ago

kanaskik commented 9 years ago

I've demonstrated connectivity to the DB using a simple Java program that uses this connection string: "jdbc:teradata://TDCDEV01/TMODE=ANSI,CHARSET=UTF8,USER=elateralrpt,PASSWORD=Teradata" But in trireme I get:

           Exception in thread "Trireme Async Pool" java.lang.NullPointerException
                at com.teradata.jdbc.TeraDriver.doConnect(TeraDriver.java:195)
                at com.teradata.jdbc.TeraDriver.connect(TeraDriver.java:158)
                at java.sql.DriverManager.getConnection(DriverManager.java:664)
                at java.sql.DriverManager.getConnection(DriverManager.java:208)
                at io.apigee.trireme.util.jdbc.JdbcWrap$JdbcImpl$1.run(JdbcWrap.java:123)
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
                at java.lang.Thread.run(Thread.java:745)

If I use this approach, I get an execute error: The UserId, Password or Account is invalid

url: 'jdbc:teradata://TDCDEV01/TMODE=ANSI,CHARSET=UTF8',
        properties: {
                user: 'elateralrpt',
                pass: 'Teradata',
        },

Is there a way to turn on debugging to see more details, perhaps the connection string, or a way to test the connection directly?

I am only allowed do reads from this DB at this point.

I tried using the tests from the github repo, but they don't show any results at all.

Details from Teradata can be found here: http://developer.teradata.com/doc/connectivity/jdbc/reference/current/frameset.html

Thanks, Kurt

gbrail commented 9 years ago

First guess: Can you try "password" as the property name instead of "pass"?

You can set the environment variable LOGLEVEL to debug before running the script, and that will enable Java debugging for Trireme, which will tell you a lot. I just checked the code however and I don't see that it logs the URL and properties.

Is the Teradata driver something that anyone can get, or is it restricted to customers? This particular error shouldn't need an actual Teradata database to diagnose -- I should be able to test it out pretty quickly if I have the driver.

The alternative would be to attach a debugger to the process and see what we're passing...

On Wed, Apr 1, 2015 at 12:02 PM, Kurt Kanaskie notifications@github.com wrote:

I've demonstrated connectivity to the DB using a simple Java program that uses this connection string:

'jdbc:teradata://TDCDEV01/TMODE=ANSI,CHARSET=UTF8,USER=elateralrpt,PASSWORD=Teradata' But in trireme I get:

       Exception in thread "Trireme Async Pool" java.lang.NullPointerException
            at com.teradata.jdbc.TeraDriver.doConnect(TeraDriver.java:195)
            at com.teradata.jdbc.TeraDriver.connect(TeraDriver.java:158)
            at java.sql.DriverManager.getConnection(DriverManager.java:664)
            at java.sql.DriverManager.getConnection(DriverManager.java:208)
            at io.apigee.trireme.util.jdbc.JdbcWrap$JdbcImpl$1.run(JdbcWrap.java:123)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
            at java.lang.Thread.run(Thread.java:745)

If I use this approach, I get an execute error: The UserId, Password or Account is invalid

url: 'jdbc:teradata://TDCDEV01/TMODE=ANSI,CHARSET=UTF8', properties: { user: 'elateralrpt', pass: 'Teradata', },

Is there a way to turn on debugging to see more details, perhaps the connection string, or a way to test the connection directly?

I can only do reads from the DB at this point.

Details from Teradata can be found here: http://developer.teradata.com/doc/connectivity/jdbc/reference/current/frameset.html

Thanks, Kurt

— Reply to this email directly or view it on GitHub https://github.com/apigee/trireme-jdbc/issues/2.

greg brail | apigee https://apigee.com/ | twitter @gbrail http://twitter.com/gbrail

kanaskik commented 9 years ago

Good guess, I'm able to connect. That's embarrassing, I thought I tried all variations.

The drivers are free and can be found here: http://downloads.teradata.com/download

gbrail commented 9 years ago

Glad to hear that it's working now!

On Thu, Apr 2, 2015 at 7:04 AM, Kurt Kanaskie notifications@github.com wrote:

Good guess, I'm able to connect. That's embarrassing, I thought I tried all variations.

The drivers are free and can be found here: http://downloads.teradata.com/download

— Reply to this email directly or view it on GitHub https://github.com/apigee/trireme-jdbc/issues/2#issuecomment-88916742.

greg brail | apigee https://apigee.com/ | twitter @gbrail http://twitter.com/gbrail