Quantcast
Channel: Teradata Downloads - Connectivity
Viewing all articles
Browse latest Browse all 445

connection using JDBC giving java.lang.IllegalArgumentException

$
0
0

Hi,
I am very new to Teradata. I have simple java program to connect to terdata database and get metadata information e. column name , datatype etc. I have requirement to call this java code inside Oracle database.

Jdbc Version : 14.10.00.39
Terdata Version : 14.10.00
Oracle Version : 11.2.0.3
Java :

java version "1.5.0_30"

Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_30-b03)

Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_30-b03, mixed mode)

 
Standalone program works. but when I call from inside Oracle , I get following error stack
*** IllegalArgumentException caught ***

 Error code: null

java.lang.IllegalArgumentException

        at com.teradata.jdbc.jdbc_4.io.TDPacketStream.limit(TDPacketStream.java:142)

        at com.teradata.jdbc.jdbc_4.io.TDPacketStream.readStream(TDPacketStream.java:774)

        at com.teradata.jdbc.jdbc.GenericLogonController.run(GenericLogonController.java:102)

        at com.teradata.jdbc.jdbc_4.TDSession.<init>(TDSession.java:205)

        at com.teradata.jdbc.jdk14.JDK14_SQL_Connection.<init>(JDK14_SQL_Connection.java:31)

        at com.teradata.jdbc.jdbc.ConnectionFactory.constructSQLConnection(ConnectionFactory.java:106)

        at com.teradata.jdbc.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:179)

        at com.teradata.jdbc.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:169)

        at com.teradata.jdbc.TeraDriver.doConnect(TeraDriver.java:232)

        at com.teradata.jdbc.TeraDriver.connect(TeraDriver.java:158)

        at java.sql.DriverManager.getConnection(DriverManager.java)

        at java.sql.DriverManager.getConnection(DriverManager.java:187)

        at TDTabList.GetTDList(TDTabList.java:32)

 

Here is DEBUG log 

 

2015-01-02.10:36:08.873 TERAJDBC4 TIMING [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Hostname lookup for teradata.db.server.com took 18 ms and found 1 address(es)

2015-01-02.10:36:08.874 TERAJDBC4 DEBUG [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Before connect loop: sm_mapConnectFailures={}

2015-01-02.10:36:08.874 TERAJDBC4 DEBUG [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 setAddresses=[teradata.db.server.com/10.17.17.120:1025]

2015-01-02.10:36:08.874 TERAJDBC4 TIMING [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Attempting connection 1 to teradata.db.server.com/10.17.17.120:1025

2015-01-02.10:36:08.878 TERAJDBC4 TIMING [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Connection attempt to teradata.db.server.com/10.17.17.120:1025 with timeout 10000 ms to

ok 2 ms and succeeded, waiting for thread took 0 ms

2015-01-02.10:36:08.879 TERAJDBC4 DEBUG [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Completed connection: socket orig=teradata.db.server.com local=/10.27.28.46:30915 remot

e=teradata.db.server.com/10.17.17.120:1025 keepalive=false nodelay=false receive=131072 send=131072 linger=10 traffic=0 concurrent=3 contimeout=10000 conwait=1000 connecttime=2 connecttotaltime=5

connectattempts=1 connectfailures=0 reconnectattempts=0 recoverable=false redrive=false failurecache={} cid=f8c9f752 sess=0

2015-01-02.10:36:08.879 TERAJDBC4 DEBUG [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Raw packet transmit: byte array length 65156 (0xfe84), offset 0 (0x0), dump length 106 (0x6a)

00000   03 01 0a 00 00 07 00 00 00 36 00 00 00 00 00 00  |.........6......|

00010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|

00020   00 00 00 00 00 ff 00 00 00 00 00 00 00 00 00 00  |................|

00030   00 00 00 00 00 a6 00 36 00 00 00 01 00 02 00 04  |.......6........|

00040   0e 0a 00 01 00 01 00 0c 54 54 55 20 31 34 2e 31  |........TTU 14.1|

00050   30 2e 30 30 00 04 00 00 00 08 00 01 01 00 03 00  |0.00............|

00060   00 00 05 00 00 00 09 00 01 01                    |..........|

 

2015-01-02.10:36:08.880 TERAJDBC4 DEBUG [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Thread Root Thread now owns lock: IO WriteLock

2015-01-02.10:36:08.880 TERAJDBC4 TIMING [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Wrote Config request message, 106 bytes, time: 0 ms

2015-01-02.10:36:08.880 TERAJDBC4 DEBUG [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Thread Root Thread attempt to unlock IO WriteLock

2015-01-02.10:36:08.881 TERAJDBC4 TIMING [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Read Config response message 1, 1356 bytes, time: 1 ms

2015-01-02.10:36:08.882 TERAJDBC4 DEBUG [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Raw packet receive: byte array length 65156 (0xfe84), offset 0 (0x0), dump length 1356 (0x54c)

00000   03 02 0a 00 00 07 00 00 05 18 00 00 00 00 00 00  |................|

00010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|

...

 

2015-01-02.10:36:08.873 TERAJDBC4 TIMING [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Hostname lookup for teradata.db.server.com took 18 ms and found 1 address(es)

2015-01-02.10:36:08.874 TERAJDBC4 DEBUG [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Before connect loop: sm_mapConnectFailures={}

2015-01-02.10:36:08.874 TERAJDBC4 DEBUG [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 setAddresses=[teradata.db.server.com/10.17.17.120:1025]

2015-01-02.10:36:08.874 TERAJDBC4 TIMING [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Attempting connection 1 to teradata.db.server.com/10.17.17.120:1025

2015-01-02.10:36:08.878 TERAJDBC4 TIMING [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Connection attempt to teradata.db.server.com/10.17.17.120:1025 with timeout 10000 ms to

ok 2 ms and succeeded, waiting for thread took 0 ms

2015-01-02.10:36:08.879 TERAJDBC4 DEBUG [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Completed connection: socket orig=teradata.db.server.com local=/10.27.28.46:30915 remot

e=teradata.db.server.com/10.17.17.120:1025 keepalive=false nodelay=false receive=131072 send=131072 linger=10 traffic=0 concurrent=3 contimeout=10000 conwait=1000 connecttime=2 connecttotaltime=5

connectattempts=1 connectfailures=0 reconnectattempts=0 recoverable=false redrive=false failurecache={} cid=f8c9f752 sess=0

2015-01-02.10:36:08.879 TERAJDBC4 DEBUG [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Raw packet transmit: byte array length 65156 (0xfe84), offset 0 (0x0), dump length 106 (0x6a)

00000   03 01 0a 00 00 07 00 00 00 36 00 00 00 00 00 00  |.........6......|

00010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|

00020   00 00 00 00 00 ff 00 00 00 00 00 00 00 00 00 00  |................|

00030   00 00 00 00 00 a6 00 36 00 00 00 01 00 02 00 04  |.......6........|

00040   0e 0a 00 01 00 01 00 0c 54 54 55 20 31 34 2e 31  |........TTU 14.1|

00050   30 2e 30 30 00 04 00 00 00 08 00 01 01 00 03 00  |0.00............|

00060   00 00 05 00 00 00 09 00 01 01                    |..........|

 

2015-01-02.10:36:08.880 TERAJDBC4 DEBUG [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Thread Root Thread now owns lock: IO WriteLock

2015-01-02.10:36:08.880 TERAJDBC4 TIMING [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Wrote Config request message, 106 bytes, time: 0 ms

2015-01-02.10:36:08.880 TERAJDBC4 DEBUG [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Thread Root Thread attempt to unlock IO WriteLock

2015-01-02.10:36:08.881 TERAJDBC4 TIMING [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Read Config response message 1, 1356 bytes, time: 1 ms

2015-01-02.10:36:08.882 TERAJDBC4 DEBUG [Root Thread] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@917ab4b8 Raw packet receive: byte array length 65156 (0xfe84), offset 0 (0x0), dump length 1356 (0x54c)

00000   03 02 0a 00 00 07 00 00 05 18 00 00 00 00 00 00  |................|

00010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|

 

Fails with 

*** IllegalArgumentException caught ***

 Error code: null

java.lang.IllegalArgumentException

        at com.teradata.jdbc.jdbc_4.io.TDPacketStream.limit(TDPacketStream.java:142)

        at com.teradata.jdbc.jdbc_4.io.TDPacketStream.readStream(TDPacketStream.java:774)

        at com.teradata.jdbc.jdbc.GenericLogonController.run(GenericLogonController.java:102)

        at com.teradata.jdbc.jdbc_4.TDSession.<init>(TDSession.java:205)

        at com.teradata.jdbc.jdk14.JDK14_SQL_Connection.<init>(JDK14_SQL_Connection.java:31)

        at com.teradata.jdbc.jdbc.ConnectionFactory.constructSQLConnection(ConnectionFactory.java:106)

        at com.teradata.jdbc.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:179)

        at com.teradata.jdbc.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:169)

        at com.teradata.jdbc.TeraDriver.doConnect(TeraDriver.java:232)

        at com.teradata.jdbc.TeraDriver.connect(TeraDriver.java:158)

        at java.sql.DriverManager.getConnection(DriverManager.java)

        at java.sql.DriverManager.getConnection(DriverManager.java:187)

        at TDTabList.GetTDList(TDTabList.java:32)

 

Stack trace is identical when I run it out side Oracle 

 

Additional Lines DEBUG lines from when from java 

 

003f0   01 01 00 0d 00 3e 31 34 2e 31 30 2e 30 33 2e 30  |.....>14.10.03.0|

00400   34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  |4               |

00410   20 20 20 20 31 34 2e 31 30 2e 30 33 2e 30 34 20  |    14.10.03.04 |

00420   20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  |                |

00430   20 20 20 20 00 0e 00 04 02 02 01 02 00 0f 00 22  |    ..........."|

00440   00 01 01 00 00 01 00 01 00 00 00 01 00 01 00 01  |................|

00450   00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 01  |................|

00460   01 00 00 10 00 14 00 00 00 00 00 00 00 00 00 00  |................|

00470   80 02 00 00 00 00 00 00 00 00 00 06 00 02 01 49  |...............I|

00480   00 a5 00 38 00 00 00 01 00 01 00 05 01 00 02 00  |...8............|

00490   08 0e 0a 03 01 00 03 00 04 00 04 00 06 00 22 00  |..............".|

004a0   06 00 04 00 05 00 04 00 07 00 04 00 08 00 04 00  |................|

004b0   09 00 04 00 0a 00 05 01 00 a7 00 31 00 00 00 01  |...........1....|

004c0   00 00 00 0d 2b 06 01 04 01 81 3f 01 87 74 01 01  |....+.....?..t..|

004d0   09 00 10 00 0c 00 00 00 03 00 00 00 01 00 11 00  |................|

004e0   0c 00 00 00 01 00 00 00 14 00 a7 00 24 00 00 00  |............$...|

004f0   01 00 00 00 0c 2b 06 01 04 01 81 3f 01 87 74 01  |.....+.....?..t.|

00500   14 00 11 00 0c 00 00 00 01 00 00 00 46 00 a7 00  |............F...|

00510   21 00 00 00 01 00 00 00 09 2a 86 48 86 f7 12 01  |!........*.H....|

00520   02 02 00 11 00 0c 00 00 00 01 00 00 00 28 00 a7  |.............(..|

00530   00 1e 00 00 00 01 00 00 00 06 2b 06 01 05 05 02  |..........+.....|

00540   00 11 00 0c 00 00 00 01 00 00 00 41              |...........A|

 

Works here ...

 

2015-01-02.10:40:01.933 TERAJDBC4 DEBUG [main] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@5f934ad ParcelFactory:nextParcel flavor value: 43

2015-01-02.10:40:01.933 TERAJDBC4 DEBUG [main] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@5f934ad ParcelFactory: creating an ConfigRspParcel

2015-01-02.10:40:01.934 TERAJDBC4 DEBUG [main] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@5f934ad arraySupport=1 outParamArgSupport=1 largeDecimalBIGINT=1 generatedKeysSupport=1 m_trustedSQLSupport=1 m_byXMLSupport=1

2015-01-02.10:40:01.934 TERAJDBC4 DEBUG [main] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@5f934ad lobSupport=1 aphSupport=1 extendedRspSupport=1 positioningSupport=1 udtSupport=1 enhancedStatementStatusSupport=0 aphResponseSupport=1 s

tatementInfoSupport=1 dynamicResultSetsSupport=1 msrPositioningSupport=1 m_statementInfoRequestSupport=1 m_byUDTTransformOffSupport=2 m_byPeriodDataTypeSupport=1 m_byElicitByNameSupport=1 m_byClientAttributesSupport=1 m_nFetchRowCountSu

pport=1 m_byStatementIndependenceSupport=1 m_byArrayDataTypeSupport=1 m_byNumberDataTypeSupport=1 m_byStatementStatusLevel=1 m_byFailFastSupport=1 m_byUnityClientAttributesSupport=1 m_byRecoverableNPSupport=1 m_byRedriveSupport=0 m_byCo

ntrolDataSupport=1 m_byJsonSupport=0

2015-01-02.10:40:01.934 TERAJDBC4 DEBUG [main] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@5f934ad ParcelFactory:nextParcel flavor value: 165

2015-01-02.10:40:01.934 TERAJDBC4 DEBUG [main] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@5f934ad ParcelFactory: creating a GtwConfigParcel

 

2015-01-02.10:40:01.933 TERAJDBC4 DEBUG [main] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@5f934ad ParcelFactory:nextParcel flavor value: 43

2015-01-02.10:40:01.933 TERAJDBC4 DEBUG [main] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@5f934ad ParcelFactory: creating an ConfigRspParcel

2015-01-02.10:40:01.934 TERAJDBC4 DEBUG [main] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@5f934ad arraySupport=1 outParamArgSupport=1 largeDecimalBIGINT=1 generatedKeysSupport=1 m_trustedSQLSupport=1 m_byXMLSupport=1

2015-01-02.10:40:01.934 TERAJDBC4 DEBUG [main] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@5f934ad lobSupport=1 aphSupport=1 extendedRspSupport=1 positioningSupport=1 udtSupport=1 enhancedStatementStatusSupport=0 aphResponseSupport=1 s

tatementInfoSupport=1 dynamicResultSetsSupport=1 msrPositioningSupport=1 m_statementInfoRequestSupport=1 m_byUDTTransformOffSupport=2 m_byPeriodDataTypeSupport=1 m_byElicitByNameSupport=1 m_byClientAttributesSupport=1 m_nFetchRowCountSu

pport=1 m_byStatementIndependenceSupport=1 m_byArrayDataTypeSupport=1 m_byNumberDataTypeSupport=1 m_byStatementStatusLevel=1 m_byFailFastSupport=1 m_byUnityClientAttributesSupport=1 m_byRecoverableNPSupport=1 m_byRedriveSupport=0 m_byCo

ntrolDataSupport=1 m_byJsonSupport=0

2015-01-02.10:40:01.934 TERAJDBC4 DEBUG [main] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@5f934ad ParcelFactory:nextParcel flavor value: 165

2015-01-02.10:40:01.934 TERAJDBC4 DEBUG [main] com.teradata.jdbc.jdk14.JDK14_SQL_Connection@5f934ad ParcelFactory: creating a GtwConfigParcel

 

...

 

Code :

 

import java.io.*;
import java.sql.*;
import com.teradata.jdbc.*;

public class TDTabList
{                       
        public static void GetTDList()
        throws ClassNotFoundException
        {
                try
                {
                        String sUser = "uid";
                        String sPassword = "pwd";

                        String DBName = "DB";
                        String TableName = "TABLE";
                        String ColList = "*";

                        String url = "jdbc:teradata://teradata.db.server.com/TMODE=ANSI,CHARSET=ASCII,LOG=DEBUG,COP=OFF";

                        Class.forName("com.teradata.jdbc.TeraDriver");
                        Connection con =  DriverManager.getConnection(url, sUser, sPassword);

                        con.setAutoCommit(false);

                        try
                        {
                                String v_sql = " Select " + ColList + " from " + DBName + "." + TableName + " Where 1=2";
                                System.out.println("SQL :" + v_sql );

                                Statement stmt = con.createStatement();
                                try
                                {
                                        ResultSet rset = stmt.executeQuery(v_sql);
                                        ResultSetMetaData rsmd = rset.getMetaData();

                                        String v_ColumnName;
                                        String v_ColumnTypeName;

                                        int    colCount = rsmd.getColumnCount();
                                        int    i = 1;
                                        int    v_data_length;
                                        int    v_data_precision;
                                        int    v_data_scale;
                                        int    v_Nullable;

                                        while(i <= colCount)
                                        {
                                                v_ColumnName     = rsmd.getColumnName(i);
                                                v_ColumnTypeName = rsmd.getColumnTypeName(i);
                                                v_data_length    = rsmd.getColumnDisplaySize(i);
                                                v_data_precision = rsmd.getPrecision(i);
                                                v_data_scale     = rsmd.getScale(i);
                                                v_Nullable       = rsmd.isNullable(i);

                                                System.out.println(rsmd.getColumnName(i)+":"+rsmd.getColumnTypeName(i)+":("+(rsmd.getPrecision(i)==0?rsmd.getColumnDisplaySize(i):rsmd.getPrecision(i))+(rsmd.getScale(i)!=0?","+ 

rsmd.getScale(i)+")":")"));
                                                i++;
                                        }
                                }
                                finally
                                {
                                        stmt.close();
                                }
                        }

                        finally
                        {
                                con.close();
                        }
        
                }

                catch (SQLException ex)
                {
                        // A SQLException was generated.  Catch it and display
                        // the error information. Note that there could be multiple
                        // error objects chained together.
                        System.out.println();
                        System.out.println("*** SQLException caught ***");

                        while (ex != null)
                        {
                                System.out.println(" Error code: " + ex.getErrorCode());
                                System.out.println(" SQL State: " + ex.getSQLState());
                                System.out.println(" Message: " + ex.getMessage());
                                ex.printStackTrace();
                                System.out.println();
                                ex = ex.getNextException();
                        }

                        throw new IllegalStateException ("GetTabColumns failed.") ;
                }

                catch (IllegalArgumentException ex)
                {
                        System.out.println();
                        System.out.println("*** IllegalArgumentException caught ***");

                        System.out.println(" Error code: " + ex.getMessage());
                        ex.printStackTrace();
                        System.out.println();

                        throw new IllegalStateException ("GetTabColumns failed.") ;
                }

        } // End class GetTDList

} // End class TDTabList

 

Any help / pointer to debug/fix this issue ?
Thanks in advance
Guru

Forums: 

Viewing all articles
Browse latest Browse all 445

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>