CommandTimeout

sergei.knyazev
Дата: 20.04.2005 02:00:53
Есть такой код:
public static bool Attach(string DataPath, string datafile,string dbname)
		{
			SqlCommand AttachDbCommand= new SqlCommand() ;	
		       //Проствляем коннесшн
			AttachDbCommand.Connection = sqlConnectionK9static;
			
			AttachDbCommand.CommandText = @"sp_attach_single_file_db @dbname = '"+dbname+@"', @physname = '"+Business.clsBusinessComputerSettings.Instance().InternalServerImportExportDirectory+@"\"+datafile+"'";
                        //Удаляем возможно оствшийся от такого же аттача log
			DeleteLog(DataPath, datafile);
			try
			{
				AttachDbCommand.ExecuteNonQuery();

			}
			catch(Exception exc)
			{
				exc.ToString();
				clsMessages.ShowErrorMessage(K9.ErrorMessageCode.ERROR_EXPORT_CANTATTACHEDUMMY);
				System.Windows.Forms.MessageBox.Show(exc.ToString());
				return false;
			}
			return true;
		}


Всё это частенько падает по таймауту. Микрософт почему-то советует проставить таймаут 7200 http://support.microsoft.com/default.aspx?scid=kb;en-us;887126

Вопрос такой: почему 7200, а не Int32.MaxValue и почему так медленно аттачится 300Кб файл?
Alex Antonoff
Дата: 20.04.2005 06:50:06
Вроде как, если поставить 0, то ограничения по времени не будет.
Attach у вас действительно долгий ...
sergei.knyazev
Дата: 20.04.2005 09:19:34
Нет, если 0 поставить получиться General Network Error. см ссылку в первом сообщении.
Sa
Дата: 23.04.2005 03:10:49
sergei.knyazev

Нет, если 0 поставить получиться General Network Error. см ссылку в первом сообщении.


По ссылке...
вы делали это

You can detect this problem in a network monitor trace if you run a query, and then you retrieve more than one packet of data at a time. By default, the SqlClient packet size is 8 kilobytes (KB). However, in the network monitor trace the packet may appear as multiple physical network packets that total 8 KB when added together. After you receive the first packet, the connection is closed with an ACK+FIN packet. SQL Server will continue to send data afterward. The behavior causes a TCP/IP connection reset and causes the error.


uid = Sa
BusyMan
Дата: 03.05.2005 13:55:37
sergei.knyazev
Нет, если 0 поставить получиться General Network Error. см ссылку в первом сообщении.

У меня тоже самое... я ставлю 12000