Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 клиент на ado не вышел по таймауту. почему?  [new]
vv40in
Member

Откуда:
Сообщений: 122
при запросе к базе (Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 .. (Build 3790: Service Pack 2) )
команда (ado25 вызвал хранимку) зависла и не вышла по таймауту в течение 12 часов.
ну, пусть там даже блокировки, ну и что - для чего ж тогда (= 3600)? неужели CommandTimeout бессилен против блокировок (хотя я их не заметил)?

вопрос: почему такое может быть и как с этим бороться?
19 окт 11, 13:17    [11465665]     Ответить | Цитировать Сообщить модератору
 Re: клиент на ado не вышел по таймауту. почему?  [new]
Glory
Member

Откуда:
Сообщений: 104751
vv40in
вопрос: почему такое может быть и как с этим бороться?

Потому что в том коннекте, где вы запустили вашу процедуру, не было задано никакого таймаута
19 окт 11, 13:21    [11465699]     Ответить | Цитировать Сообщить модератору
 Re: клиент на ado не вышел по таймауту. почему?  [new]
vv40in
Member

Откуда:
Сообщений: 122
Glory, в коннекте был установлен тот же самый таймаут
19 окт 11, 13:49    [11466023]     Ответить | Цитировать Сообщить модератору
 Re: клиент на ado не вышел по таймауту. почему?  [new]
Glory
Member

Откуда:
Сообщений: 104751
vv40in
Glory, в коннекте был установлен тот же самый таймаут

ну так проверяйте свой клиентский код
Сервер то его изменить не может при всем желании
19 окт 11, 13:52    [11466057]     Ответить | Цитировать Сообщить модератору
 Re: клиент на ado не вышел по таймауту. почему?  [new]
vv40in
Member

Откуда:
Сообщений: 122
Может быть есть у кого-нибудь _дельные_ предположения?
19 окт 11, 13:59    [11466142]     Ответить | Цитировать Сообщить модератору
 Re: клиент на ado не вышел по таймауту. почему?  [new]
iljy
Member

Откуда:
Сообщений: 8711
vv40in
Может быть есть у кого-нибудь _дельные_ предположения?

Конечно есть! Внимательно прочитайте тут.
19 окт 11, 14:02    [11466173]     Ответить | Цитировать Сообщить модератору
 Re: клиент на ado не вышел по таймауту. почему?  [new]
Glory
Member

Откуда:
Сообщений: 104751
vv40in
Может быть есть у кого-нибудь _дельные_ предположения?

Установка таймаута и прерываение запроса - это только клиентское дело
Что может делать сервер, так это долго отменять действия в транзакции, например
Но изменить установки клиента никакой сервер не может
19 окт 11, 14:02    [11466176]     Ответить | Цитировать Сообщить модератору
 Re: клиент на ado не вышел по таймауту. почему?  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
vv40in
Может быть есть у кого-нибудь _дельные_ предположения?


Предположения есть. Но покажите кусок этого кода, чтобы их опровергнуть или подтвердить.
19 окт 11, 14:10    [11466259]     Ответить | Цитировать Сообщить модератору
 Re: клиент на ado не вышел по таймауту. почему?  [new]
vv40in
Member

Откуда:
Сообщений: 122
Глеб, хммм, ничего хитрого:
	m_pConnection->CommandTimeout = 3600L;
	_RecordsetPtr rs = m_pConnection->Execute("exec p_blyamblyamblyamblyam", NULL, 0);
а ведь существуют еще и значения по-умолчанию (CommandTimeout=30sec, ConnectionTimeout=15sec - это всё из msdn)
19 окт 11, 14:26    [11466393]     Ответить | Цитировать Сообщить модератору
 Re: клиент на ado не вышел по таймауту. почему?  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
vv40in
Глеб, хммм, ничего хитрого:
а ведь существуют еще и значения по-умолчанию (CommandTimeout=30sec, ConnectionTimeout=15sec - это всё из msdn)
Где существуют?
Glory
Установка таймаута и прерываение запроса - это только клиентское дело
19 окт 11, 14:34    [11466493]     Ответить | Цитировать Сообщить модератору
 Re: клиент на ado не вышел по таймауту. почему?  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
vv40in
Глеб, хммм, ничего хитрого:
m_pConnection->CommandTimeout = 3600L;
_RecordsetPtr rs = m_pConnection->Execute("exec p_blyamblyamblyamblyam", NULL, 0);


Есть такая ботва для версии 2.5:
http://support.microsoft.com/kb/175264
CommandTimout Property Problem with Connection Object

Либо переврите с использованием объекта ADODB.Command, либо проапгрейдите версию ADO до долготерпимой MDAC2.8
19 окт 11, 14:43    [11466607]     Ответить | Цитировать Сообщить модератору
 Re: клиент на ado не вышел по таймауту. почему?  [new]
vv40in
Member

Откуда:
Сообщений: 122
baracs
vv40in
Глеб, хммм, ничего хитрого:
а ведь существуют еще и значения по-умолчанию (CommandTimeout=30sec, ConnectionTimeout=15sec - это всё из msdn)
Где существуют?
Glory
Установка таймаута и прерываение запроса - это только клиентское дело

напр
подозреваю, что ado- это и есть часть клиента. Он и выполняет часть работы. Например, если сразу после создания объекта connection взять у него CommandTimeout, то обнаружим значение по-умолчанию. Легко сказать - легко проверить.

но я думаю, что вместо ответа я получаю элементарные вопросы. очень жаль...
19 окт 11, 14:50    [11466663]     Ответить | Цитировать Сообщить модератору
 Re: клиент на ado не вышел по таймауту. почему?  [new]
vv40in
Member

Откуда:
Сообщений: 122
Глеб,
спасибо!
19 окт 11, 14:50    [11466672]     Ответить | Цитировать Сообщить модератору
 Re: клиент на ado не вышел по таймауту. почему?  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
vv40in
подозреваю, что ado- это и есть часть клиента.
Во-от... Вам уже много раз писали, что сервер здесь не при чем.
19 окт 11, 15:07    [11466819]     Ответить | Цитировать Сообщить модератору
 Re: клиент на ado не вышел по таймауту. почему?  [new]
Glory
Member

Откуда:
Сообщений: 104751
vv40in
но я думаю, что вместо ответа я получаю элементарные вопросы. очень жаль...

Только так и осталось непонятным, как сервер может влиять на то, что для вас элементарно
19 окт 11, 15:14    [11466895]     Ответить | Цитировать Сообщить модератору
 Re: клиент на ado не вышел по таймауту. почему?  [new]
aleks2
Guest
Glory
vv40in
но я думаю, что вместо ответа я получаю элементарные вопросы. очень жаль...

Только так и осталось непонятным, как сервер может влиять на то, что для вас элементарно


Очень просто, если сервер начнет передачу рекордсета, то он могет передавать по строчке в сутки и таймаута для ADO не будет
19 окт 11, 17:27    [11468116]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить