I am facing an issue with reconnect in .NET and ODBC connectors from SQLA when i do a DBS restart. I am seeing this in TD Expres 15.0 SLES 10 40GB VM.
Teradata .NET Data Provider :
Issue here is that after a successful DBS restart, SQLA is not maintaining the current session context.
'sel session' query returns different session number and it keeps on incrementing with each retry of the query from there on.
To confirm this, I tried to reproduce this issue with GTT which should sustain a typical DBS restart.
Steps I used to reproduce this issue:
1) Created a GTT and inserted a row in it.
create GLOBAL TEMPORARY TABLE gtt_restart(i int,j char(10))
unique primary index(i) on commit preserve rows;
2) Issued a select query 'sel * from gtt_restart' and was able to succesfully fetch the data. 'Sel Session' query and sessioninfo view display the sesion number as '1010'
3) Performed a DBS restart using tpareset and waited till TD is up.
4) Re executed the query 'sel * from gtt_restart' . It failed with "SELECT Failed  Cannot close an Active Request. Please Abort the Request" . Re executed the query again and see that the sesion gets reconnected but there is no data in the GTT. I have tried to verify the session number and this time 'Sel Session' query displays the sesion number as '1012' and sessioninfo table has two rows with old sesion number '1010' and new sesion number '1012'.
If i try to reissue the 'sel session' query or fetch session info from 'sessioninfo' view, The session number gets incremented.
ODBC Driver: (Have configured the DSN with Enable Reconnect)
Using ODBC driver in SQLA, After a DBS restart, When i tried to re-run any query in SQLA window, It throws an error msg box '10054 WSA E ConnReset: Connection reset by peer' and the status bar displays executing query and remained like that forever.
This is working fine through BTEQ and GTT is able to retain data(With 2825 error) after a DBS restart.
Windows 8.1 Pro
DBS package versions used:
TDExpress22.214.171.124_Sles10:~ # pdepath -i
Once aborted a .NET session (via viewpoint or DBS restart), SQLA does not ask for connection information again when I try to execute another qurey from same window. It just reconnect another session and executes the query without asking me connection information again.
Why this is so ?