Перестают возвращаться данные из базы
От: Tenka http://animanga.ru
Дата: 10.01.07 08:22
Оценка:
Здравствуйте.

Периодически возникает странная ситуация. Все запросы в базу MSSQL из web-приложения перестают возвращать данные. При этом никаких исключений не возникает. Вызов этих запросов напрямую через query analizer отрабатывает нормально, данные возвращаются. Ошибка нестабильная, поэтому как следует отловить и отладить не удаётся. Никаких изменений с вызовом хранимых процедур за последнее время не производилось. Что может послужить причиной такой ошибки?
Версия .net: 1.1.4322
MSSQL Server 2000

Заранее спасибо.
Re: Перестают возвращаться данные из базы
От: Andrew_ImP  
Дата: 10.01.07 08:37
Оценка:
Здравствуйте, Tenka, Вы писали:

T>Здравствуйте.


T>Периодически возникает странная ситуация. Все запросы в базу MSSQL из web-приложения перестают возвращать данные. При этом никаких исключений не возникает. Вызов этих запросов напрямую через query analizer отрабатывает нормально, данные возвращаются. Ошибка нестабильная, поэтому как следует отловить и отладить не удаётся. Никаких изменений с вызовом хранимых процедур за последнее время не производилось. Что может послужить причиной такой ошибки?

T>Версия .net: 1.1.4322
T>MSSQL Server 2000

T>Заранее спасибо.


Возможно что причина в незакрытых коннектах к базе данных.
Re[2]: Перестают возвращаться данные из базы
От: Аноним  
Дата: 10.01.07 10:16
Оценка:
Здравствуйте, Andrew_ImP, Вы писали:

A_I>Возможно что причина в незакрытых коннектах к базе данных.


Проверила ещё раз. Коннекты вроде везьде закрываются. Хотя, в некоторых местах это сделано не в блоках finally. Но ошибки при выполнении запросов случаются редко, поэтому, наверно, это не должно стать причиной. Единственное, что смущает, это выполнение SqlDataAdapter.Fill. Написано, что при выполнении автоматически открывается и закрывается соединение. Однако, из руководства не ясно, будет ли закрыто соединение, если выполнение запроса вызовет исключение?
Re[3]: Перестают возвращаться данные из базы
От: Andrew_ImP  
Дата: 10.01.07 11:21
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Andrew_ImP, Вы писали:


A_I>>Возможно что причина в незакрытых коннектах к базе данных.


А>Проверила ещё раз. Коннекты вроде везьде закрываются. Хотя, в некоторых местах это сделано не в блоках finally. Но ошибки при выполнении запросов случаются редко, поэтому, наверно, это не должно стать причиной. Единственное, что смущает, это выполнение SqlDataAdapter.Fill. Написано, что при выполнении автоматически открывается и закрывается соединение. Однако, из руководства не ясно, будет ли закрыто соединение, если выполнение запроса вызовет исключение?


Если в программе используются SqlCommand, то вот эти замечания будут полезны:

You can reset the CommandText property and reuse the SqlCommand object. However, you must close the SqlDataReader before you can execute a new or previous command.

If a SqlException is generated by the method executing a SqlCommand, the SqlConnection remains open when the severity level is 19 or less. When the severity level is 20 or greater, the server ordinarily closes the SqlConnection. However, the user can reopen the connection and continue.


Насчет SqlDataAdapter.Fill — там вот это забавно:

If the connection is open before Fill is called, it remains open.

Re[3]: Перестают возвращаться данные из базы
От: Andrew_ImP  
Дата: 10.01.07 11:41
Оценка:
Кстати, еще посмотри на обновления к MsSql2k здесь.
Re[4]: Перестают возвращаться данные из базы
От: _d_m_  
Дата: 11.01.07 10:02
Оценка:
Здравствуйте, Andrew_ImP, Вы писали:

A_I> Кстати, еще посмотри на обновления к MsSql2k здесь.


Это устаревшая информация, давным давно существует SP4, качаем с МС. И получаем билд сервера 2039
Re[4]: Перестают возвращаться данные из базы
От: Tenka http://animanga.ru
Дата: 11.01.07 13:17
Оценка:
Здравствуйте, Andrew_ImP, Вы писали:

A_I> Кстати, еще посмотри на обновления к MsSql2k здесь.


SP4 давно стоит.
И, кроме того, тесты показали, что, если не закрывать коннекшены, то в результате получаем исключение: InvalidOperationException Timeout expired. The timeout period elap
sed prior to obtaining a connection from the pool. This may have occurred becau
se all pooled connections were in use and max pool size was reached.
А у нас исключений не возникает, а просто запросы ничего не возвращают.

Нет ли ещё каких-нибудь идей?
Re[5]: Перестают возвращаться данные из базы
От: squiz  
Дата: 14.01.07 19:52
Оценка:
Здравствуйте, Tenka, Вы писали:

T>Нет ли ещё каких-нибудь идей?

Было такое. Не возвращались данный из SP. Точно как вы описали. Запарились искать в чем проблема. Решалось тем, что вместо вызова SP дергали query из кода.
Never underestimate those behind you...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.