All Forums Connectivity
shl7c 6 posts Joined 05/14
03 Mar 2015
centos 6.4 + tdodbc 15 getting error: 110 Unable to get catalog string.

Hi all, hoping someone can help. I've got a clean CentOS 6.4 box and I'm trying to connect it to Teradata. My first step is to install ksh then I install the tdodbc 15 packages: tdicu, tdodbc, TeraGSS. Then I copy the /opt/teradata/client/ODBC_64/odbc*.ini files to my home dir, prepending the '.' and edit the files for my Teradata credentials and DBC.
I test the connection using /opt/teradata/client/15.00/odbc_64/bin/tdxodbc and I'm returned this error:
adhoc: (SQL Diagnostics) STATE=HYT00, CODE=110, MSG=[Teradata][Unix system error]  110 Unable to get catalog string.
 
What should I try next? Thanks in advanced. 

shl7c 6 posts Joined 05/14
03 Mar 2015

So, with a bit more research, I determined that the message indicates the catalog file can't be found: https://stackoverflow.com/questions/22793620/teradata-unable-to-get-catalog-string-error-when-using-odbc-to-connect/22816836#22816836
 
So, now:

[slyon@x-7447 ~]$ find /opt/teradata/ -name "*.cat"
/opt/teradata/client/15.00/odbc_32/msg/tdodbc.cat
/opt/teradata/client/15.00/odbc_64/msg/tdodbc.cat
[slyon@x-7447 ~]$ export NLSPATH=/opt/teradata/client/15.00/odbc_64/msg/tdodbc.cat
[slyon@x-7447 ~]$ /opt/teradata/client/15.00/odbc_64/bin/tdxodbc

Enter Data Source Name: jonny
Enter UserID: slyon
Enter Password:

Connecting with SQLConnect(DSN=jonny,UID=slyon,PWD=*)...

adhoc: (SQL Diagnostics) STATE=HYT00, CODE=110, MSG=[Teradata][Unix system error]  110 Socket error - No response received when attempting to connect to the Teradata server

ODBC connection closed.

 

shl7c 6 posts Joined 05/14
04 Mar 2015

So then I added DSNTraceEnable=Yes to my .odbc.ini file and was able to capture the tdxodbc connection attempt's trace output.

   36     TS:790:[139713758390048] *** LCC:  socket(5) created.  Total sockets created:1   [ cwinsock.cpp 1322 ]

    37     TS:790:[139713758390048] *** LCC: select() waiting for 0.240000 seconds. 1 active connections   [ cwinsock.cpp 1203 ]
    38     TS:3190:[139713758390048] *** LCC:  select() TIMEDOUT   [ cwinsock.cpp 1237 ]
    39     TS:3190:[139713758390048] *** LCC: Fetching address 2 of jonnycop5.xxx.xxx.xxx  [ CNode.cpp 214 ]
    40     TS:3190:[139713758390048] *** LCC:  socket(6) created.  Total sockets created:2   [ cwinsock.cpp 1322 ]
    41     TS:3190:[139713758390048] *** LCC: select() waiting for 0.240000 seconds. 2 active connections   [ cwinsock.cpp 1203 ]
    42     TS:5600:[139713758390048] *** LCC:  select() TIMEDOUT   [ cwinsock.cpp 1237 ]
    43     TS:5600:[139713758390048] *** LCC: Fetching address 3 of jonnycop5.xxx.xxx.xxx   [ CNode.cpp 214 ]
    44     TS:5600:[139713758390048] *** LCC:  socket(7) created.  Total sockets created:3   [ cwinsock.cpp 1322 ]
    45     TS:5600:[139713758390048] *** LCC: select() waiting for 0.240000 seconds. 3 active connections   [ cwinsock.cpp 1203 ]
    46     TS:8000:[139713758390048] *** LCC:  select() TIMEDOUT   [ cwinsock.cpp 1237 ]
    47     TS:8000:[139713758390048] *** LCC: Fetching address 4 of jonnycop5.xxx.xxx.xxx   [ CNode.cpp 214 ]
    48     TS:8000:[139713758390048] *** LCC:  socket(8) created.  Total sockets created:4   [ cwinsock.cpp 1322 ]
    49     TS:8000:[139713758390048] *** LCC: select() waiting for 0.240000 seconds. 4 active connections   [ cwinsock.cpp 1203 ]
    50     TS:10400:[139713758390048] *** LCC:  select() TIMEDOUT   [ cwinsock.cpp 1237 ]
    51     TS:10400:[139713758390048] *** LCC: Fetching address 5 of jonnycop5.xxx.xxx.xxx   [ CNode.cpp 214 ]
    52     TS:10400:[139713758390048] *** LCC:  socket(9) created.  Total sockets created:5   [ cwinsock.cpp 1322 ]
    53     TS:10400:[139713758390048] *** LCC: select() waiting for 0.240000 seconds. 5 active connections   [ cwinsock.cpp 1203 ]
    54     TS:12800:[139713758390048] *** LCC:  select() TIMEDOUT   [ cwinsock.cpp 1237 ]
    55     TS:12800:[139713758390048] *** LCC: Fetching address 6 of jonnycop5.xxx.xxx.xxx   [ CNode.cpp 214 ]
    56     TS:12800:[139713758390048] *** LCC:  socket(10) created.  Total sockets created:6   [ cwinsock.cpp 1322 ]
    57     TS:12800:[139713758390048] *** LCC: select() waiting for 0.240000 seconds. 6 active connections   [ cwinsock.cpp 1203 ]
    58     TS:15200:[139713758390048] *** LCC:  select() TIMEDOUT   [ cwinsock.cpp 1237 ]
    59     TS:15200:[139713758390048] *** LCC: Fetching address 7 of jonnycop5.xxx.xxx.xxx   [ CNode.cpp 214 ]
    60     TS:15200:[139713758390048] *** LCC:  socket(11) created.  Total sockets created:7   [ cwinsock.cpp 1322 ]
    61     TS:15200:[139713758390048] *** LCC: select() waiting for 0.240000 seconds. 7 active connections   [ cwinsock.cpp 1203 ]
    62     TS:17610:[139713758390048] *** LCC:  select() TIMEDOUT   [ cwinsock.cpp 1237 ]
    63     TS:17610:[139713758390048] *** LCC: Fetching address 8 of jonnycop5.xxx.xxx.xxx   [ CNode.cpp 214 ]
    64     TS:17610:[139713758390048] *** LCC:  socket(12) created.  Total sockets created:8   [ cwinsock.cpp 1322 ]
    65     TS:17610:[139713758390048] *** LCC: select() waiting for 0.240000 seconds. 8 active connections   [ cwinsock.cpp 1203 ]
    66     TS:20010:[139713758390048] *** LCC:  select() TIMEDOUT   [ cwinsock.cpp 1237 ]
    67     TS:20010:[139713758390048] *** LCC: application/user set LoginTimeout elapsed   [ cwinsock.cpp 943 ]
    68     TS:20010:[139713758390048] *** LCC: Deleting Resolver   [ ConnectToHost.cpp 215 ]
    69   2 TS:20010:[139713758390048] DBC::SocketError(0x0)   [ dbccli.cpp 291 ]
    70     TS:20010:[139713758390048] [SetDiagStatusRec][HYT00][S1T00][110][[Teradata][Unix system error]  110 Socket error - No response received when attempting to connect to the Teradata server]    [ sqlerror.cpp 1280 ]
    71     TS:20010:[139713758390048] MessageBox was passed an unusable parent handle: 0xA1C3F758   [ connect.cpp 6904 ]
    72     TS:20010:[139713758390048] SQLGetDiagRec(fHandleType 2, hHandle 2, iRecNumber 1,    [ results.cpp 4134 ]
    73     TS:20010:[139713758390048] szSqlState, pfNativeErrorPtr, szMessageText, 1026, pcbTextLengthPtr)
    [ results.cpp 4199 ]
    74     TS:20010:[139713758390048] SQLGetDiagRec returns 0   [ results.cpp 4215 ]
    75     TS:20010:[139713758390048] SQLGetDiagRecW SQLGetDiagRec2 returned 0   [ SQLWFunctions.cpp 1321 ]
    76     TS:20010:[139713758390048] SQLGetDiagRecW returns  0 to the DM   [ SQLWFunctions.cpp 1337 ]
    77     TS:20010:[139713758390048] SQLGetDiagRec(fHandleType 2, hHandle 2, iRecNumber 1,    [ results.cpp 4134 ]
    78     TS:20010:[139713758390048] szSqlState, pfNativeErrorPtr, szMessageText, 1026, pcbTextLengthPtr)
    [ results.cpp 4199 ]
    79     TS:20010:[139713758390048] SQLGetDiagRec returns 0   [ results.cpp 4215 ]
    80     TS:20010:[139713758390048] SQLGetDiagRecW SQLGetDiagRec2 returned 0   [ SQLWFunctions.cpp 1321 ]
    81     TS:20010:[139713758390048] SQLGetDiagRecW returns  0 to the DM   [ SQLWFunctions.cpp 1337 ]
    82     TS:20010:[139713758390048] SQLGetDiagField(fHandleType 2, hHandle 2, iRecNumber 1, fDiagIdentifier 8,    [ results.cpp 3330 ]
    83     TS:20010:[139713758390048] pvDiagInfoPtr, 1026, pcbStringLengthPtr)
    [ results.cpp 3604 ]
    84     TS:20010:[139713758390048] SQLGetDiagField(fHandleType 2, hHandle 2, iRecNumber 1, fDiagIdentifier 9,    [ results.cpp 3330 ]
    85     TS:20010:[139713758390048] pvDiagInfoPtr, 1026, pcbStringLengthPtr)
    [ results.cpp 3604 ]
    86     TS:20010:[139713758390048] SQLGetDiagField(fHandleType 2, hHandle 2, iRecNumber 1, fDiagIdentifier 10,    [ results.cpp 3330 ]
    87     TS:20010:[139713758390048] PriorToV2R2OrDefault 0, 1026, 22) --> SQL_SUCCESS
    [ results.cpp 3536 ]
    88     TS:20010:[139713758390048] SQLGetDiagField(fHandleType 2, hHandle 2, iRecNumber 1, fDiagIdentifier 11,    [ results.cpp 3330 ]
    89     TS:20010:[139713758390048] , 1026, 0) --> SQL_SUCCESS
    [ results.cpp 3579 ]
    90     TS:20010:[139713758390048] SQLGetDiagRec(fHandleType 2, hHandle 2, iRecNumber 2,    [ results.cpp 4134 ]
    91     TS:20010:[139713758390048] szSqlState, pfNativeErrorPtr, szMessageText, 1026, pcbTextLengthPtr)
    [ results.cpp 4199 ]
    92     TS:20010:[139713758390048] SQLGetDiagRec returns 100   [ results.cpp 4215 ]
    93     TS:20010:[139713758390048] SQLGetDiagRecW SQLGetDiagRec2 returned 100   [ SQLWFunctions.cpp 1321 ]
    94     TS:20010:[139713758390048] SQLGetDiagRecW returns  100 to the DM   [ SQLWFunctions.cpp 1337 ]
    95     TS:20010:[139713758390048] Entering SQLFreeHandle     [ connect.cpp 792 ]
    96     TS:20010:[139713758390048] SQLFreeHandle: SQL_HANDLE_DBC    [ connect.cpp 800 ]
    97     TS:20010:[139713758390048] FreeConnect(hdbc2)    [ connect.cpp 5882 ]
    98     TS:20010:[139713758390048] CToTeradataLanMessage::operator delete (p=0x207DC50)   [ ctlanmsg.cpp 522 ]
    99     TS:20010:[139713758390048] doing delete on CFromTeradataLanMessage   [ ctlanmsg.cpp 854 ]
   100     TS:20010:[139713758390048] Entering SQLFreeHandle     [ connect.cpp 792 ]
   101     TS:20010:[139713758390048] SQLFreeHandle: SQL_HANDLE_ENV    [ connect.cpp 796 ]
   102     TS:20010:[139713758390048] FreeEnv(henv2)    [ connect.cpp 5944 ]
   103     TS:20010:[139713758390048] ...Message texts file closed   [ connect.cpp 5966 ]
   104     TS:20010:[139713758390048] ...AddressOfEntryPoint failed for DestroyAllShellWidgets due to NULL so_handle   [ ../unix/csharedobj.cpp 359 ]
   105     TS:20010:[139713758390048] CSharedObject being destroyed   [ ../unix/csharedobj.cpp 120 ]
   106     TS:20010:[139713758390048] : successful   [ ../unix/csharedobj.cpp 136 ]
   107     TS:20010:[139713758390048] ...Connection dialog shared object released   [ connect.cpp 5988 ]

**** Tracing Disabled at Wed Mar  4 05:40:02 2015 ***

 

Fred 1096 posts Joined 08/04
04 Mar 2015

What does the DBCName parameter for your DSN entry look like?
If it's a single name "X" can you ping XCOP1 (with the added suffix)? Can you ping X (with no suffix)?

shl7c 6 posts Joined 05/14
04 Mar 2015

DBCName=jonny.xxx.xxx.xxx
I can ping jonny.xxx.xxx.xxx 
I can ping jonny
I can ping jonnyCOP1
I can ping jonnyCOP1.xxx.xxx.xxx
 

Fred 1096 posts Joined 08/04
04 Mar 2015

It looks like you are getting a LoginTimeout at 2 seconds (though the default should be 20). Try specifying a much larger value, e.g. LoginTimeout=120
See if it succeeds or if it just takes longer before it fails.

vhari 111 posts Joined 12/08
04 Mar 2015

few points.
- ODBC Driver for Teradata is not supported on CentOS.
- DNS returned multiple IP-addresses for 'jonnycop5.xxx.xxx.xxx'.  And 8 of them not responded to driver's connect request.  You may want to check what are those IP-addresses returned from DNS for 'jonnycop5.xxx.xxx.xxx' and see if they are responding.
- If you have multiple COP names defined and each of them associated with muliple IPs.  You can also check if this is how the DNS configuration should be.

shl7c 6 posts Joined 05/14
04 Mar 2015

I believe it's a network firewall issue. I'll post back after I can confirm.

shl7c 6 posts Joined 05/14
09 Mar 2015

Yup, firewall issue. Thanks to all who chimed in.

You must sign in to leave a comment.