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:
[.NET Data Provider for Teradata]  Command did not complete within the time specified (timeout).
[Teradata Database]  The transaction was aborted by the user.
[Socket Transport]  The recieve operation timed out.
The statement that caused the error was not found. error: [Teradata Database] [ 3110] The transaction was aborted by the user.
Can you help me?
The default Command-Timeout is 30 seconds. How long does it take to execute the command(s) with 18.104.22.168?
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.
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.)
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?
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.