All Forums Connectivity
Petr.Kaminsky 5 posts Joined 12/15
07 Jan 2016
.NET provider (ver 15.xx), TdCommandBuilder, bulk load, error

Hello.
 
We use TdCommandBuilder/TdDataAdapter for bulk insert.
 
We use version 14.11.00.01, everything works fine,
I tried newer version, but sometimes I receive errors:
- 15.01.00.01
[.NET Data Provider for Teradata] [100038] Command did not complete within the time specified (timeout).
[Teradata Database] [3110] The transaction was aborted by the user.
[Socket Transport] [115003] The recieve operation timed out.
- 15.11.00.01
The statement that caused the error was not found. error: [Teradata Database] [ 3110] The transaction was aborted by the user.
 
Can you help me?
 
P.

NetFx 346 posts Joined 09/06
07 Jan 2016

The default Command-Timeout is 30 seconds. How long does it take to execute the command(s) with 14.11.0.1? 
The System.Data.Common.DbCommandBuilder class transfers the CommandTimeout from the SelectCommand to the Update, Insert and Delete commands. So you can change the Default 30 seconds command-timeout on TdDataAdapter.SelectCommand.
Refer to http://referencesource.microsoft.com/#System.Data/System/Data/Common/DBCommandBuilder.cs,1296

Petr.Kaminsky 5 posts Joined 12/15
08 Jan 2016

Yes, timeout is 30 sec. Execution times for batch Update with version 14:
- 200 rows, 0:4.3 (4 sec.)
- 400 rows, 0:6.6
- 800 rows, 0:9.4
- 1600 rows, 0:17.7
- 3200 rows, 0:42.2
- 6400 rows, 1:18.3
- 12800 rows, 2:17.7 (2 min., 18 sec.)

Petr.Kaminsky 5 posts Joined 12/15
08 Jan 2016

When changed timeout to bigger value in 15.01, it works.
 
Does it mean you changed semantics of CommandTimeout in 15.xx version? Or just in version 14 it was ignored?

NetFx 346 posts Joined 09/06
08 Jan 2016

No we did not change the semantics of the Command Timeout.
The .NET Data Provider 15.0 was enhanced to support new batch-update scenarios. It might be sending a larger Batch-Update to Teradata Database which requires a larger command-timeout.  

You must sign in to leave a comment.