powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / CommandTimeout - практики задания при выборе сервера, базы и т.д.
5 сообщений из 5, страница 1 из 1
CommandTimeout - практики задания при выборе сервера, базы и т.д.
    #35152810
sandyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.NET приложение имеет такую модель доступа (сервер - произвольный sql2000/2005, хоть локальный, хоть за тридевять земель):

UI шаг 1. Выбирается сервер (локальный или удаленный) - задается server name + login/password, делается некий простой TestConnection (SELECT @@SERVERNAME) дабы убедиться что сервак существует и отвечает.
UI шаг 2. От сервера запрашивается список databases. Выбирается database + table - соответственно проводятся селекты по system tables.
UI шаг 3. Открывается table, производится работа с выбранной таблицей.

Мне не нравится практика использования на всех шагах по сути одного и того же conection string c unlimited timeout (то, как сейчас сделано). В этом случае после ввода server name если сервер не отвечает (например local server - stopped), приложение пытается ооооочень долго сконнектиться и все это время юзер видит диалог "connecting to server..". вопрос: каковы практики установки commnad timeout для команд:
1) установления физического присутствия сервера ("Test Connection")
2) получения списка databases/tables, короче запросов к системным таблицам.
3) практика unlimited (или заведомо большого скажем 10-15 мин) timeout к таблицам, c которыми непосредственно работает приложение, мне кажется логичной, поэтому тут вроде вопроса нет, но тем не менее буду рад и здесь получить какие-то комментарии.


Спасибо.

PS Не пинайте, поиском почему-то ничего толкового не нарыл, одни лишь "как избавиться от expired" и подобное.
...
Рейтинг: 0 / 0
CommandTimeout - практики задания при выборе сервера, базы и т.д.
    #35156467
SerP1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) не commnad timeout, а connection timeout
2) connection timeout по умолчанию не unlimited, если Вы сами не установили его в оную
3) Не изобретайте велосипеды. Для определения списка доступных sql-серверов используйте SqlDataSourceEnumerator.Instance.GetDataSources(), а для определения, можно ли к нему подконнектиться конструкцию try{connection.Open();fl=true;}catch{fl=false;}
4) Опять, не изобретайте велосипеды, есть замечательный метод connection.GetSchema(string) - он вам вернет и БД и таблицы и кучу всего (за справкой в MSDN)
5) для таблиц да - commnad timeout, но 10-15 мин - это очень много, не каждый человек выдержит ждать столько времени, предположим, простую выборку из таблицы

А теперь по теме: commnad timeout и connection timeout больше минуты выставлять смысла нет.
commnad timeout - можно делать больше, но для этого придется делать какую-то визуализацию в интерфейсе пользователя - типа ждите, идет продолжительная операция
...
Рейтинг: 0 / 0
CommandTimeout - практики задания при выборе сервера, базы и т.д.
    #35156800
sandyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По существу разницы connection/command timeout-ов спасибо, пропустил блин я здесь.

GetDataSources() используется конечно же, с юзанием Connection.Open тоже согласен, но дальше все очень индивидуально мне кажется.

> 4) Опять, не изобретайте велосипеды, есть замечательный метод connection.GetSchema(string) -
> он вам вернет и БД и таблицы и кучу всего (за справкой в MSDN)

Вернет ли crdate таблицы? Похоже что нет.

> 5) для таблиц да - commnad timeout, но 10-15 мин - это очень много, не каждый человек
> выдержит ждать столько времени, предположим, простую выборку из таблицы

Как ниже Вы и пишете, UI обеспечивает "ожидание" результатов (там агрегации на сервере проводятся) поэтому для таких случаев явно не 1 мин требуется.
...
Рейтинг: 0 / 0
CommandTimeout - практики задания при выборе сервера, базы и т.д.
    #35157794
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так а в чем вопрос-то собственно, я, извините, не понял?
...
Рейтинг: 0 / 0
CommandTimeout - практики задания при выборе сервера, базы и т.д.
    #35158048
sandyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да по сути в том что спутал на каком-то этапе понятия Connection timeout и Command timeout-ов. Все остальное лирика и product-specific)))
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / CommandTimeout - практики задания при выборе сервера, базы и т.д.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]